Primero creamos la conexión con DB2 desde Netbeans 6.0. Netbeans a diferencia de Java Studio Creator se ha desatado de la función embebida de traer los drivers y realizar todas las tareas requeridas para conectarse correctamente. Es un poco más complicado pero permite tener mayor control sobre la aplicación ya que podemos escoger a nuestro gusto o necesidad los componentes del driver.
1. Asegurarse de que la base de datos esté arriba.
2. Creamos un nuevo proyecto Web en Netbeans utilizando el framework "Visual Web Java Server Faces". (yo lo denominé: WebTest1).
3. Dentro de Netbeans en la pestaña que dice Services: DataBases - > Drivers, Haga click derecho en la palabra Driver - > New Driver...
5. Le damos click en "add" (Agregar) y escogemos los 2 archivos drivers jdbc.
DB2 utiliza los archivos db2jcc.jar y db2jcc_license_cu.jar para conectar cualquier aplicacion JDBC. Cabe resaltar que desde la version 9 de DB2, también está disponible un tercer archivo llamado db2jcc4.jar el cual incluye las funcionalidades de JDBC 4.0 y su antecesor (JDBC 3.0). IBM recomienda no utilizar db2jcc y db2jcc4 juntos, es decir son disyuntivos. Los archivos se encuentran en el directorio SQLLIB\Java de la carpeta de IBM que se escogió para la instalación de DB2. En mi caso queda el driver queda conformado asi:
Luego de dar OK, y ya tenemos configurado el driver de DB2 con netbenas. Sin embargo no tenemos aún una conexión real con la base de datos. Digamos que ya armamos el barco, falta remar hasta la otra orilla. En la lista de drivers ya aparece el nuevo, ahora nos conectamos a la base de datos.
Ahora si damos click en "OK", y observamos que en el nodo Databases aparece nuestra nueva conexion:
8. Abrimos el nodo de nuestra conexion y estamos en un ambiente parecido al de nuestra base de datos, donde observamos las tablas, vistas y procedimientos (si disponemos de ellos en nuestra base de datos)
9. Selecionamos la tabla (en mi caso TABLE1) y la arrastramos de igual forma hasta la pagina. Netbeans automaticamente craerá un rowset en el SessionBean1 (si no existe) y un Cachedrowsetdataprovider generado asi nombre_de_tabladataprovider.
10. Aún en la vista de sieño, nos vamos a la tabla JSF y hacemos click dercho->bind to data, seleccionamos el dataprovider de la tabla, que acabamos de agregar a la pagina y de igual forma las columnas de la tabla en DB2, que queremos visualizar:
En mi caso, mi tabla solo tiene 2 campos un entero de nombre CODIGO y un varchar de nombre TEXTO. Depues de dar click en OK, nos queda la tabla parecida a esta:

Normalmente seria solo darle "Run" y esperar que salga la tabla, pero me he dado cuenta que no es asi. Si le damos ejecutar inmediatamente en Mozilla sale la página en blanco, ientras que en explorer sale algo de código html referente a la tabla JSF. Al revisar los logs de Glassfish osbervé constantemente este mensaje:
com.ibm.db2.jcc.b.SqlException: [jcc][10389][12245][3.50.152] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError: no db2jcct2 in java.library.path: ERRORCODE=-4472, SQLSTATE=null
y a continuación de el un stack trace espantoso. Resulta que los señores de IBM requieren otro archivo para conectarse (oootro?? si, otro...). existe una libreria nativa de DB2 llamada db2jcct2.dll que es necesaria de incluir. Vamos a la carpeta de IBM donde instalamos DB2 (ojo, no donde reside la base de datos). En mi caso dicho archivo se encontraba en: C:Archivos de programa\IBM\SQLLIB\BIN, simplemente lo copiamos a la carpeta "lib" del servidor ubicada en C:Archivos de programa\glassfish-v2\lib.
Nota: Si tu servidor estaba iniciado es necesario que lo reinicies despues de copiar el archivo.
bon despliegue!!! :D
com.ibm.db2.jcc.b.SqlException: [jcc][10389][12245][3.50.152] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError: no db2jcct2 in java.library.path: ERRORCODE=-4472, SQLSTATE=null
y a continuación de el un stack trace espantoso. Resulta que los señores de IBM requieren otro archivo para conectarse (oootro?? si, otro...). existe una libreria nativa de DB2 llamada db2jcct2.dll que es necesaria de incluir. Vamos a la carpeta de IBM donde instalamos DB2 (ojo, no donde reside la base de datos). En mi caso dicho archivo se encontraba en: C:Archivos de programa\IBM\SQLLIB\BIN, simplemente lo copiamos a la carpeta "lib" del servidor ubicada en C:Archivos de programa\glassfish-v2\lib.
Nota: Si tu servidor estaba iniciado es necesario que lo reinicies despues de copiar el archivo.
5 comentarios:
hola que tal tu blog esta genial muy explicado pero tengo una duda ami solo me aparecen:
private CachedRowSetDataProvider cachedRowSetDataProvider1 = new CachedRowSetDataProvider();
public CachedRowSetDataProvider getCachedRowSetDataProvider1() {
return cachedRowSetDataProvider1;
}
public void setCachedRowSetDataProvider1(CachedRowSetDataProvider crsdp) {
this.cachedRowSetDataProvider1 = crsdp;
}
en mi page1 y no en sessionbean como explicas puedes decirme en que estoy mal por favor
Hola laura, disculpame me faltó explicar que el rowset se genera en el SessionBean, pero el dataprovider si se genera en la página. Vas bien.
Hola victor, gracias por este tutorial que esta muy bueno. Sin embargo, tengo un problema similar al de laura. Solo tengo el CachedRowSetDataProvider, pero no el que se genera en SessionBean1, que seria el RowSetDataProvider.
Y la tabla no cambia sus valores default, a los valores de mi tabla de mi BB.DD.
Cual podria ser la causa?
De antemano gracias
qSIERA SABER COMO CONFIGURAR EL GLASSFISH
Victor le agradesco infinito la informacion, es excelente no sabe cuanto busque para que me conectara, gracia.
Publicar un comentario