Foros del Web » Programación para mayores de 30 ;) » Java »

Netbeans + Derby + Resultset actualizable

Estas en el tema de Netbeans + Derby + Resultset actualizable en el foro de Java en Foros del Web. Hola a todos, anteriormente había planteado un tema puntual en http://www.forosdelweb.com/f45/mostr...ncada-1105908/ en el cual planteaba que si haciendo un ejercicio de actualizar una base de ...
  #1 (permalink)  
Antiguo 15/08/2014, 16:50
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Netbeans + Derby + Resultset actualizable

Hola a todos, anteriormente había planteado un tema puntual en http://www.forosdelweb.com/f45/mostr...ncada-1105908/ en el cual planteaba que si haciendo un ejercicio de actualizar una base de datos me tiraba el error de que el Resultset no era actualizable.

Luego de buscar por todos lados encontré que este código:

Código:
Connection con = DriverManager.getConnection(host, uName, uPass);

DatabaseMetaData metadata = con.getMetaData();
boolean updatable = metadata.supportsResultSetConcurrency(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
System.out.println("Updatable ResultSet supported = " + updatable);
Te permite mostrar en la consola si el ResultSet de tu driver de base de datos soporta actualización o no...

al ejecutarlo en mi programa me da false o sea que Derby no permite que el Resulset sea actualizable?

Entonces qué método alternativo se puede usar para actualizar los datos de la base de datos?

Estoy perdida
  #2 (permalink)  
Antiguo 15/08/2014, 17:40
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 14 años
Puntos: 24
Respuesta: Netbeans + Derby + Resultset actualizable

Hola,
si Derby no te ofrece las características deseadas, deberías probar con otro motor de base de datos. MySQL es muy popular, en internet hay muchos tutoriales para instalarlo de manera fácil. También podrías "conectarlo" a Netbeans como dice el punto 1 de este tutorial:
https://netbeans.org/competition/win...ql-client.html
Ten en cuenta no es necesario conectarlo, esto más que todo es para tener un gesto gráfico para agregar/quitar filas, crear tablas, etc.
Podrías tener tus proyectos que se conecten a MySQL a través de tu código, y sin embargo administrar gráficamente MySQL desde otro progama como MySQL Workbench, SQLYog, Navicat, etc...
  #3 (permalink)  
Antiguo 16/08/2014, 00:22
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Netbeans + Derby + Resultset actualizable

Hola,

Cita:
Iniciado por lufe Ver Mensaje
... al ejecutarlo en mi programa me da false o sea que Derby no permite que el Resulset sea actualizable? ...
Técnicamente no es la base de datos ni el driver de Apache Derby actuales, este tiene implementado los ResultSet actualizables desde hace bastante tiempo. Es decir, posiblemente no tienes una versión moderna de Derby o sus drivers, inclusive posiblemente no estás usando la misma versión del driver que la base de datos.

Pero también pueden ser otros motivos, que no esté bien instalado, permisos u otras razones.

Cita:
Iniciado por lufe Ver Mensaje
... Entonces qué método alternativo se puede usar para actualizar los datos de la base de datos? ...
Posiblemente, la mejor opción es que cambies a MySQL como indica farfamorA, haciendo pequeñas modificaciones al tutorial, como el usuario y la contraseña por defecto y otros detalles.

También podrías intentar instalar de nuevo un JDK moderno (que este incluye JavaDB), o instalarlo por aparte. Así como buscar el driver para la versión de Derby que estás usando e intentar de nuevo. Aunque normalmente el driver lo encuentras en la misma carpeta de instalación de Apache Derby o JavaDB.

Saludos,
  #4 (permalink)  
Antiguo 16/08/2014, 06:50
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Netbeans + Derby + Resultset actualizable

Cita:
Iniciado por farfamorA Ver Mensaje
Hola,
si Derby no te ofrece las características deseadas, deberías probar con otro motor de base de datos. MySQL es muy popular, en internet hay muchos tutoriales para instalarlo de manera fácil. También podrías "conectarlo" a Netbeans como dice el punto 1 de este tutorial:
https://netbeans.org/competition/win...ql-client.html
Ten en cuenta no es necesario conectarlo, esto más que todo es para tener un gesto gráfico para agregar/quitar filas, crear tablas, etc.
Podrías tener tus proyectos que se conecten a MySQL a través de tu código, y sin embargo administrar gráficamente MySQL desde otro progama como MySQL Workbench, SQLYog, Navicat, etc...
Muchas gracias por tu respuesta.

El tema es que quiero crear un programa con la base de datos embebida, o sea que una vez que exporte mi proyecto para instalarlo en otra computadora no se necesario instalar los servicios de base de datos y creo que Derby soluciona eso, por eso comencé por ese camino.

Workbench lo estuve investigando y está interesante, pero permite que la base de datos sea embebida? (No se si le llaman así, me refiero a que una vez que tenemos el JAR y los /LIB con eso solo alcance para que el programa corra.
  #5 (permalink)  
Antiguo 16/08/2014, 06:54
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Netbeans + Derby + Resultset actualizable

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



Técnicamente no es la base de datos ni el driver de Apache Derby actuales, este tiene implementado los ResultSet actualizables desde hace bastante tiempo. Es decir, posiblemente no tienes una versión moderna de Derby o sus drivers, inclusive posiblemente no estás usando la misma versión del driver que la base de datos.

Pero también pueden ser otros motivos, que no esté bien instalado, permisos u otras razones.



Posiblemente, la mejor opción es que cambies a MySQL como indica farfamorA, haciendo pequeñas modificaciones al tutorial, como el usuario y la contraseña por defecto y otros detalles.

También podrías intentar instalar de nuevo un JDK moderno (que este incluye JavaDB), o instalarlo por aparte. Así como buscar el driver para la versión de Derby que estás usando e intentar de nuevo. Aunque normalmente el driver lo encuentras en la misma carpeta de instalación de Apache Derby o JavaDB.

Saludos,
Muchas gracias por la respuesta!

Voy a investigar a ver si ese es el problema mío. Yo tengo Windows 7 y bajé NetBeans completo la versión 8.0, la última, y de Derby creo haber bajado también la versión última, la derbyclient-10.1.3.1

Más que nada comencé con Derby porque como respondí al otro forista me interesa que una vez terminado mi proyecto sea fácilmente instalable en otros equipos sin tener que instalar además servicios extra como MySQL. Creo que a eso le llaman base de datos embebida, por eso comencé con Derby.

Investigo si lo puedo solucionar y te aviso.
  #6 (permalink)  
Antiguo 16/08/2014, 08:25
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Netbeans + Derby + Resultset actualizable

Pude solucionarlo!!!

Gracias por la ayuda, probé con varias versiones del cliente derby y con la derbyclient-10.10.1.1 me funcionó perfecto.

Ahora puedo seguir aprendiendo. Gracias a los dos!!
  #7 (permalink)  
Antiguo 16/08/2014, 10:27
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Netbeans + Derby + Resultset actualizable

Hola,

Que bueno que ya pudiste resolver el problema, adicionalmente unos comentarios nada más,

Cita:
Iniciado por lufe Ver Mensaje
... bajé NetBeans completo la versión 8.0, la última, y de Derby creo haber bajado también la versión última, la derbyclient-10.1.3.1 ...
NetBeans no incluye Derby, usa el que venga con Glassfish, si la versión de NetBeans que descargaste lo incluía y adicionalmente si lo instalaste, sino usa el del JDK que tengas instalado.

Ahora bien, creo que Derby 10.1.3.1 salió hace mas de 10 años, fue una de las primeras versiones y seguramente no tenía implementadas esas cosas todavía.

Cita:
Iniciado por lufe Ver Mensaje
... probé con varias versiones del cliente derby y con la derbyclient-10.10.1.1 me funcionó perfecto. ...
En el caso de Derby u otras bases de datos embebidas, lo mas aconsejable es que uses el driver para la versión específica de la base de datos. La mayoría de veces son compatibles los drivers, pero de vez en cuando se rompe algo en la compatiblidad binaria y presenta comportamientos extraños.

Saludos,
  #8 (permalink)  
Antiguo 17/08/2014, 07:08
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Netbeans + Derby + Resultset actualizable

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

Que bueno que ya pudiste resolver el problema, adicionalmente unos comentarios nada más,



NetBeans no incluye Derby, usa el que venga con Glassfish, si la versión de NetBeans que descargaste lo incluía y adicionalmente si lo instalaste, sino usa el del JDK que tengas instalado.

Ahora bien, creo que Derby 10.1.3.1 salió hace mas de 10 años, fue una de las primeras versiones y seguramente no tenía implementadas esas cosas todavía.



En el caso de Derby u otras bases de datos embebidas, lo mas aconsejable es que uses el driver para la versión específica de la base de datos. La mayoría de veces son compatibles los drivers, pero de vez en cuando se rompe algo en la compatiblidad binaria y presenta comportamientos extraños.

Saludos,
Hola de nuevo. Estoy un poco confundida. Yo bajé la versión completa de Netbeans, la que tiene todas las opciones incluidas. Luego lo que tuve que hacer fue bajar el cliente Derby e indicarle a cada proyecto que usara esa librería.

Pero de todas formas cuando en Netbeans voy a Servicio y creo una base de datos ya me la "crea en Derby", no se si me expreso bien, pero al crear una base de datos ya me la crea con los parámetros de Derby, no me pregunta si quiero que sea MySQL o lo que fuera.

Disculpa mi torpeza pero estoy aprendiendo.

Según entiendo de tu explicación al haber bajado Netbeans vino con Glassfish y este sí incorpora Derby?


"En el caso de Derby u otras bases de datos embebidas, lo mas aconsejable es que uses el driver para la versión específica de la base de datos."

Y cómo puedo saber que versión de Base de Datos tengo instalada? En algún menú de Netbeans sale esa info?
  #9 (permalink)  
Antiguo 17/08/2014, 23:48
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Netbeans + Derby + Resultset actualizable

Hola,

Cita:
Iniciado por lufe Ver Mensaje
... Pero de todas formas cuando en Netbeans voy a Servicio y creo una base de datos ya me la "crea en Derby", no se si me expreso bien, pero al crear una base de datos ya me la crea con los parámetros de Derby, no me pregunta si quiero que sea MySQL o lo que fuera. ...
Así es, NetBeans no incluye el motor de base de datos Derby en su distribución principal, lo que hace es buscar una existente, en el caso que hayas instalado Glassfish al momento de instalar NetBeans, probablemente use esa, sino usa la que está en el JDK, o posiblemente encuentre otra instalación.

El cliente de Derby lo puedes bajar del sitio de Apache Derby o lo encuentras donde esté instalada la base de datos en tu PC. El hecho es que estás usando una versión de Derby, aunque lo único que hace falta es saber cual es y donde está.

Cita:
Iniciado por lufe Ver Mensaje
... Y cómo puedo saber que versión de Base de Datos tengo instalada? En algún menú de Netbeans sale esa info?
Esa parte no es tan complicada, entra a NetBeans y busca el motor de base de datos Java DB. En la ventana Services, en el nodo del árbol Databases, con el botón derecho del mouse, selecciona Java DB, y luego Properties.

En Java DB Installation te indica donde está instalada (en esa ubicación puedes encontrar también el driver de la versión que estás usando desde NetBeans).

Después en el mismo nodo Java DB, inicia la base de datos con la opción Start Server, y en la ventana "Output" (Ctrl+4) te muesta la versión de la base de datos.

Saludos,
  #10 (permalink)  
Antiguo 19/08/2014, 18:43
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Netbeans + Derby + Resultset actualizable

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



Así es, NetBeans no incluye el motor de base de datos Derby en su distribución principal, lo que hace es buscar una existente, en el caso que hayas instalado Glassfish al momento de instalar NetBeans, probablemente use esa, sino usa la que está en el JDK, o posiblemente encuentre otra instalación.

El cliente de Derby lo puedes bajar del sitio de Apache Derby o lo encuentras donde esté instalada la base de datos en tu PC. El hecho es que estás usando una versión de Derby, aunque lo único que hace falta es saber cual es y donde está.
Correcto! Repetí todo el proceso de instalación de NetBeans en otra computadora je je je y en un paso me preguntaba si quería usar Apache o Glassfish, como yo no sabía la primera vez había dejado Glassfish y le emboqué



Cita:
Iniciado por HackmanC Ver Mensaje
Hola,


Esa parte no es tan complicada, entra a NetBeans y busca el motor de base de datos Java DB. En la ventana Services, en el nodo del árbol Databases, con el botón derecho del mouse, selecciona Java DB, y luego Properties.

En Java DB Installation te indica donde está instalada (en esa ubicación puedes encontrar también el driver de la versión que estás usando desde NetBeans).

Después en el mismo nodo Java DB, inicia la base de datos con la opción Start Server, y en la ventana "Output" (Ctrl+4) te muesta la versión de la base de datos.

Saludos,
Tal cual dices!!

A mi me da
C:\Program Files\Java\jdk1.8.0_11\db

Quiere decir que el problema de compatibilidad que tenía al principio se hubiera solucionado si yo copiaba el derbyclient que me aparece en
C:\Program Files\Java\jdk1.8.0_11\db\lib

y lo ponía en la carpeta con el resto del proyecto y así lo asignaba como librería.

Eso entendí de tu explicación.

En el otro proceso de chequeo me da:

Tue Aug 19 21:40:36 GMT-03:00 2014 : Se ha instalado el gestor de seguridad con la política de seguridad de servidor básica.
Tue Aug 19 21:40:37 GMT-03:00 2014 : Servidor de red Apache Derby: Se ha iniciado 10.10.1.3 - (1557168) y está listo para aceptar las conexiones en el puerto 1527


Muchas gracias, estoy muy agradecida, ahora puedo avanzar.

Etiquetas: netbeans, programa, resultset
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:38.