martes oct 16, 2007
martes oct 16, 2007
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 |
| CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath', 'travel.ProcedureTest'); |
Ahora a probar...
domingo may 06, 2007
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.
lunes mar 05, 2007
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