elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Crear Store Procedure en Java DB o Apache Derby
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear Store Procedure en Java DB o Apache Derby  (Leído 5,718 veces)
maurobravo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Crear Store Procedure en Java DB o Apache Derby
« en: 7 Agosto 2013, 23:28 pm »

Buenas a todos.
Lo que quiero saber como se hace es crear un Store Procedure en la base que trae NetBeans.
Por lo que estuve viendo en la documentacion de la pagina de apache llegue a poder crearlo, pero no logro entender donde colocar la consulta dentro del SP.
La query que use para crear el sp es:


Código:

CREATE PROCEDURE prueba(DP1 INTEGER, DP2 INTEGER)
PARAMETER STYLE JAVA
LANGUAGE JAVA
READS SQL DATA
DYNAMIC RESULT SETS 2
EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows'


Esta la saque de http://wiki.apache.org/db-derby/DerbySQLroutines#Creating_Procedures


Espero puedan ayudarme.

Desde ya muchas gracias.

Saludos


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #1 en: 8 Agosto 2013, 00:04 am »

La estructura es muy similar a un lenguaje de consulta de datos.

http://db.apache.org/derby/docs/10.1/ref/rrefcreateprocedurestatement.html

Algo así.
Citar
CREATE PROCEDURE createUser( IN username VARCHAR(64),
                             IN password VARCHAR(64),
                             IN email VARCHAR(64) )
PARAMETER STYLE JAVA
LANGUAGE JAVA
EXTERNAL NAME 'CreateUserCommand.createUser'; //class_name.method_name

Ahí viene todo lo necesario.

Saludos.


En línea

abc
maurobravo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #2 en: 8 Agosto 2013, 00:38 am »

Hola Darhius , gracias por la respuesta. Perdon que no entienda pero sigo sin entender por ejemplo donde pongo dentro del Store Procedure algo como "Insert into tabla (campos) values (datos)"

Muchas Gracias. Saludos
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #3 en: 8 Agosto 2013, 00:43 am »

Como tienes instalado el derby?, me refiero a que si lo tienes configurado en nb.
Puedes hacerlo desde ahí o desde línea de comandos.
En línea

abc
maurobravo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #4 en: 8 Agosto 2013, 01:37 am »

Lo tengo instalado en NB, lo tengo en prestaciones, donde le doy a iniciar servidor, luego conecto la base de datos y ahí en procedimientos apretó en ejecutar comandos. Aqui es donde con el script que puse mas abajo pude crear un sp pero no se como crear un sp con su consulta adentro, para que luego la pueda llamar desde la aplicación de escritorio que tengo que hacer en java. Espero estar siendo lo bastante claro. Saludos
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #5 en: 8 Agosto 2013, 18:09 pm »

Lo tengo instalado en NB, lo tengo en prestaciones, donde le doy a iniciar servidor, luego conecto la base de datos y ahí en procedimientos apretó en ejecutar comandos. Aqui es donde con el script que puse mas abajo pude crear un sp pero no se como crear un sp con su consulta adentro, para que luego la pueda llamar desde la aplicación de escritorio que tengo que hacer en java. Espero estar siendo lo bastante claro. Saludos

Es que es un poco diferente que otro lenguaje.

Más claro.

Table.
Código
  1. CREATE TABLE "USERS" (
  2.    "USERNAME" VARCHAR(64),
  3.    "PASSWORD" VARCHAR(64),
  4.    "EMAIL" VARCHAR(64)
  5. );
  6.  


Stored Procedure.
Código
  1. CREATE PROCEDURE createUser( IN username VARCHAR(64),
  2.                             IN password VARCHAR(64),
  3.                             IN email VARCHAR(64) )
  4. PARAMETER STYLE JAVA
  5. LANGUAGE JAVA
  6. EXTERNAL NAME 'Users.createUser';
  7.  


Citar
EXTERNAL NAME string

String describes the Java method to be called when the procedure is executed, and takes the following form:
class_name.method_name
http://db.apache.org/derby/docs/10.1/ref/rrefcreateprocedurestatement.html


Class Users.
Código
  1. /*
  2.  * By Darhius929
  3.  */
  4. package users;
  5.  
  6. import java.sql.SQLException;
  7. import java.sql.Connection;
  8. import java.sql.PreparedStatement;
  9. import java.sql.DriverManager;
  10.  
  11. public class Users {
  12.  
  13.    public static void createUser( String username, String password, String email ) throws SQLException {
  14.      Connection conn = null;
  15.      PreparedStatement stmt = null;
  16.      try {
  17.        conn = DriverManager.getConnection( "jdbc:default:connection" );
  18.        String sql = "INSERT INTO USERS " +
  19.                     "(USERNAME, PASSWORD, EMAIL) VALUES (?,?,?)";
  20.        stmt = conn.prepareStatement( sql );
  21.        stmt.setString( 1, username );
  22.        stmt.setString( 2, password );
  23.        stmt.setString( 3, email );
  24.        stmt.executeUpdate();
  25.      } finally {
  26.          stmt.close();
  27.          conn.close();
  28.      }
  29.    }
  30. }
  31.  

Solo faltaría el método en Java para llamar el SP.

Saludos.
En línea

abc
maurobravo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #6 en: 8 Agosto 2013, 20:08 pm »

Ah es mas raro de lo que había pensado jejeje Muchas gracias ahora si lo entendí. Saludos
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Crear Store Procedure en Java DB o Apache Derby
« Respuesta #7 en: 8 Agosto 2013, 20:30 pm »

No entiendo muy bien de por qué es así  :¬¬

Debes tener cuidado en lo siguiente.

Citar
EXTERNAL NAME 'derby.Users.createUser';

Esta línea es importante. Se le dice al motor de la base de datos donde encontrar la función, en este caso el motor de base de datos busca en la clase derby.Users para el método public static llamado createUser.

1. En pocas palabras. Incluye desde el nombre del package hasta el nombre del método.
2. El nombre del método que se incluye en el SP debe ser declarado como public en Java.

Saludos.

« Última modificación: 8 Agosto 2013, 20:48 pm por Darhius » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines