Sun Campus Ambassador Chile "Innovation Happens Everywhere". A Blog by Rodrigo Andueza
Rodrigo Open World
Archivos
« noviembre 2009
lunmarmiéjueviesábdom
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
      
Hoy
Click me to subscribe
Search

Enlaces
 

Las visitas de hoy a la página: 6

martes oct 16, 2007
Procedimientos Almacenados en Java DB con Netbeans.

Los procedimientos almacenados son un herramienta que ha estado presente desde hace ya un buen tiempo los principales motores de bases de datos para poder encapsular lógica de aplicación y además SQL dentro del motor. Las ventajas de poder ocupar los procedimientos almacenados dentro un sistema son variadas, pero principalmente con el hecho de encapsular lógica dentro de ellas ayuda a tener bajos niveles de acoplamiento, y altos niveles de cohesión considerando los objetos que estamos haciendo persistentes dentro de nuestra aplicación.

Java DB, la versión soportada por SUN de Apache Derby, cuenta con varias funcionalidad des gran interés, tal como funcionar en modo “endebido” o cliente/servidor, soporte para tipos de datos BLOB and CLOB, entre otras... Pero es la capacidad de poder crear procedimientos almacenados lo que ahora nos ha interesado, sobre todo desde el punto de vista que los procedimientos almacenados que se crean en Java DB son hechos en Java. Esta capacidad de crear procedimientos almacenados en Java, que han ganado gran popularidad en grandes motores como Oracle, tiene varias ventajas comparativas con respecto a los procedimientos tradicionales:

Primeros pasos.

Si bien es cierto JavaDB viene por defecto con el JDK 1.6, para esta ocasión ocupare la versión de Java DB que se integra con Netbeans y el Enterprise Pack, donde vienen algunas bases de datos de ejemplo como “travel”.

Para verificar si tenemos instalada la interfaz para el manejo de Java DB, debemos ir al menú “Tools” y verificar que aparezca “Java DB Database”.
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ahora crearemos un nuevo proyecto Java del tipo Java Application llamado “JavaStoredProcedure”.  Ahora dentro de el crearemos una clase llamada “ProcedureTest” donde pondremos el código para nuestro procedimiento almacenado.   En este caso el procedimiento almacenado simplemente consulta algunos datos de la base de datos “travel” según el parámetro que le estoy dando que corresponde a un ID de persona. 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ahora agregamos el siguiente código para la clase:

 
 public class ProcedureTest {
    
    /** Creates a new instance of ProcedureTest */
    public ProcedureTest() {
    }
    
    public static void getNombre(int id, ResultSet[] rsOut) {
        
     try{   
        
        Connection conn = DriverManager.getConnection("jdbc:default:connection");
        PreparedStatement ps1 = conn.prepareStatement("SELECT NAME FROM PERSON WHERE PERSONID=?");
        ps1.setInt(1, id);
        rsOut[0] = ps1.executeQuery();
        conn.close();
     }
     catch(SQLException e){
        System.err.println(e.toString());
     }
        
    }
    
    
}

 

 

 

 

Ahora es muy importante para poder después ingresar este procedimiento dentro de la base de datos empaquetar la clase en un JAR.  En el caso de Netbeans lo realiza de manera automática, verificándolo en las propiedades del proyecto.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Una vez construida y empaquetada la clase, debemos realizar las operaciones sobre la base de datos.   Para eso vamos a iniciar la instancia de “travel” y abrir una nueva ventana para la ejecución de comandos.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ahora para poder ingresar este procedimiento debemos crear primero el procedimiento dentro de la base de datos que “enmascarara” al procedimiento que está hecho en Java.  De aquí cabe destacar que en este caso tenemos solo 1 “Dynamic Result Set”, ya que este va a depender de las preguntas que estemos realizando a la base de datos y la definición que hicimos en nuestro código Java donde dimos como parámetro 1 resultset de salida.   Ademas el “External Name” corresponde al nombre de la clase y el método que generamos como procedimiento almacenado.

 
 

CREATE PROCEDURE GET_NOMBRE(IN id INTEGER)

PARAMETER STYLE JAVA

LANGUAGE JAVA

READS SQL DATA

DYNAMIC RESULT SETS 1

EXTERNAL NAME 'ProcedureTest.getNombre'

 Una vez ejecutado esto con éxito, debemos ocupar el comando SQLJ.INSTALL que se encarga de cargar el JAR que contiene nuestro procedimiento almacenado en la base datos.  El primero parámetro que recibe corresponde a la dirección donde se encuentra el JAR a instalar(dar la ruta completa) y el segundo corresponde al contexto del procedimiento creado en la base de datos, es decir, “ESQUEMA.CLASE”.

 

CALL SQLJ.install_jar('C:\Documents and Settings\Administrador\Mis

documentos\NetBeansProjects\JavaStoredProcedure\dist\JavaStoredProcedure.jar', 'travel.ProcedureTest', 0);
 
Ahora que tenemos ya instalado el procedimiento dentro de la base de datos debemos setear el classpath de JavaDB para que sepa que existe ese procedimiento dentro del conjunto de librerías de la base de datos.  Para eso usamos el comando SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY, donde recibe como parámetro la llave que estamos agregando que corresponde a “derby.database.classpath” y el segundo es al igual que en el paso anterior, el esquema mas la clase que contiene el o los métodos.

 
 CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath', 'travel.ProcedureTest');

 Ahora a probar...

Posted at 10:57PM oct 16, 2007 by Rodrigo Antonio Andueza Gallar in Java  |  Comentarios[8]

domingo may 06, 2007
Un mundo del posibilidades en JavaOne

 

Hay muchas cosas que están sucediendo en San Francisco hoy en día, pero hay algo que durante esta semana pondrá los ojos del mundo de la tecnología en ella, el JavaOne.  Desde el  día Martes 8 de mayo se llevara a cabo la conferencia de desarrolladores Java más importante del mundo, que reúne a las mentes detrás de los desarrollos tecnológicos más importantes de hoy en día en la plataforma, donde asistirán más de 20.000 personas de diferentes partes del mundo en un solo lugar, el Moscone Center en San Francisco.   Es aquí justamente donde yo también formare parte viendo que nuevas tecnologías y principalmente ideas podemos llevar a cabo es este mundo colaborativo, que durante esta semana estará de fiesta.   

Posted at 03:51PM may 06, 2007 by Rodrigo Antonio Andueza Gallar in Java  |  Comentarios[1]

lunes mar 05, 2007
Netbeans con sabor latino

Hace unos años atrás cuando llegaba el momento de elegir entornos de trabajo para sistemas Java en general teníamos muy pocas opciones, y si queríamos ocupar alguna herramienta  con características avanzadas como lo era JBuilder o Java Enterprise System o Forte, nos topábamos con varios problemas, tal como los altos requerimientos del sistema, su alta complejidad y falta de documentación y obviamente su alto costo.  Sin embargo las cosas han cambiado bastante desde esos días y muchos de esos entornos han evolucionado y visto el surgimiento de nuevas y grandes comunidades que soportan estas herramientas. 

Hoy en día los dos más grandes y populares entornos de desarrollo para Java son Eclipse y Netbeans.  Ambos partieron como  proyectos Open Source mas menos al mismo tiempo; sin embargo, eclipse mostró un crecimiento importante en los siguientes años hasta transformarse en el entorno de desarrollo Java preferido en el mundo, cosa a la cual Netbeans no había podido hacer mucha pelea… hasta ahora.   En estos días Netbeans que se encuentra en su versión 5.5 (y en Milestones 7 de su versión 6.0) ha logrado algo que pocos pueden llegar a hacer dentro de un mercado tan cambiante y es adaptarse bien a las necesidades de los desarrolladores, y en especial esta versión parece enfocar una de las mejores distribuciones que se ha visto en años; y esto lo está reconociendo también la comunidad en general, donde fue elegido producto del año 2007 por la revista Infoworld.  Y esto continúa; actualmente la comunidad java de Panamá está a punto de terminar la primera traducción del entorno 5.5 al idioma español, la cual se lanzara presuntamente en abril. 

Al parecer la era de la colaboración ha alcanzado a todos lugares, lo que está generando que podamos disfrutar de grandes herramientas como Netbeans en diferentes sabores tales como Ingles, Japonés, Portugués (Brasil), Checo, Taiwanés y ahora próximamente también en español.

 Netbeans Site : http://www.netbeans.org

 

Posted at 05:14PM mar 05, 2007 by Rodrigo Antonio Andueza Gallar in Java  |  Comentarios[2]