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

Java + JavaSqlite

Estas en el tema de Java + JavaSqlite en el foro de Java en Foros del Web. Bueno a ver si algun entendido pasa por aqui y puede ayudarme... El caso es que deseo hacer una pequeña aplicación, asi de lo más ...
  #1 (permalink)  
Antiguo 11/03/2007, 19:09
Avatar de DaHousecat  
Fecha de Ingreso: junio-2006
Mensajes: 132
Antigüedad: 17 años, 11 meses
Puntos: 1
Java + JavaSqlite

Bueno a ver si algun entendido pasa por aqui y puede ayudarme...

El caso es que deseo hacer una pequeña aplicación, asi de lo más básica y sencilla usando SQLite, la aplicación sería desarrollada en java, encontre un Wrapper del SQLite en esta dirección http://www.ch-werner.de/javasqlite/ el problema que tengo es que no entiendo el API que describen, bueno logro crear la BD, hacer consultas, pero a la hora de imprimir los resultados me manda puros datos preformateados y no se como implementarlos, por ejemplo:

Tengo una BD que se llama DHC, este mismo tiene una tabla llamada T1, T1 tiene dos campos ID que es de tipo entero y data que es Varchar.

id | data
1 | Carlos
2 | Mario

Hago una consulta de este tipo:
Código:
SELECT data FROM t1 LIMIT 1
Pues quiero que solo me mande Carlos, pero al imprimir el resultado me manda esto:

Código:
data|
Carlos|
Alguien tiene idea de como usar esta API? quiero que esa consulta solo me mande Carlos, sin la barrita.

Alguien tiene idea?, un tuto? un ejemplo? lo que sea?
__________________
DaHouseCat's Blog || Un blog de Flash ActionScript, PHP, MySQL, Motorola Modding y mucho más ^_^
  #2 (permalink)  
Antiguo 11/03/2007, 21:06
 
Fecha de Ingreso: mayo-2002
Mensajes: 32
Antigüedad: 22 años
Puntos: 0
Re: Java + JavaSqlite

hola que tal:

he estado los ultimos dias buscando informacion sobre como usar SQLite con java y lo unico que he logrado es confundirme. desarrollo aplicaciones en linux, pero necesito correr una aplicacion con SQLite tanto en windows como linux y me gustaria saber en que SO estas trabajando, ojala puedas ayudarme, ya que estoy practicamente en 0.

al parecer Java y SQLite son multiplataforma, pero los driver para conectarlo no, estoy algo enredado ya que he intentado compilar el codigo fuente de wrapper para java y me arroja errores. estuve mirando una pagina de un foro de sun donde explican que el binario del wrapper esta erroneo, ( creo que era para linux).

bueno ojala puedas tu ayudarme , ya que por lomenos me gustaria correr tus errores en los sistema operativos.

Saludos y gracias de ante mano por tu respuesta.
  #3 (permalink)  
Antiguo 12/03/2007, 10:59
Avatar de DaHousecat  
Fecha de Ingreso: junio-2006
Mensajes: 132
Antigüedad: 17 años, 11 meses
Puntos: 1
Re: Java + JavaSqlite

Pues segun dice en la pagina q menciono, el wrapper es modo nativo o sea q no tienes que hacer conexiones jdbc, yo estoy probando sobre windows pero esa misma aplicacion debe correr sobre linux por eso la estoy haciendo en JAVA.

El problema que tengo que como me devuelve los valores pues todo lo demas lo ha bien, crea bd, puedo hacer querys, inserts, selects sin mayor problema pero me retorna los valores preformateados y es lo que no kiero hacer.
__________________
DaHouseCat's Blog || Un blog de Flash ActionScript, PHP, MySQL, Motorola Modding y mucho más ^_^
  #4 (permalink)  
Antiguo 12/03/2007, 11:10
 
Fecha de Ingreso: mayo-2002
Mensajes: 32
Antigüedad: 22 años
Puntos: 0
Re: Java + JavaSqlite

Cita:
Iniciado por DaHousecat Ver Mensaje
Pues segun dice en la pagina q menciono, el wrapper es modo nativo o sea q no tienes que hacer conexiones jdbc, yo estoy probando sobre windows pero esa misma aplicacion debe correr sobre linux por eso la estoy haciendo en JAVA.

El problema que tengo que como me devuelve los valores pues todo lo demas lo ha bien, crea bd, puedo hacer querys, inserts, selects sin mayor problema pero me retorna los valores preformateados y es lo que no kiero hacer.
bueno , yo estoy intentado por linux y al intentar compilar el tarball me arroga errores en los archivos de java, por lo que no he podido continuar y no he conseguido hacer nada en linux, es posible que te pueda contactar por msn??

si el wrapper es modo nativo, entonces para que sirve el jdbc?.

Saludos
  #5 (permalink)  
Antiguo 12/03/2007, 12:35
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: Java + JavaSqlite

Si teneis que hacer una aplicacion multiplataforma con BDD incrustada, quizá sería mejor optar por una BDD 100% Java (HSQLDB, Apache Derby...) con esas no deberia haber problema para moverlas de un sitio a otro y los drivers son tambien Java 100%, así que tampoco.

Además, funcionan con JDBC normal y corriente asi que todos los tutoriales de JDBC os servirán igual, una vez hecha la conexión.

S!
  #6 (permalink)  
Antiguo 12/03/2007, 21:00
 
Fecha de Ingreso: mayo-2002
Mensajes: 32
Antigüedad: 22 años
Puntos: 0
Re: Java + JavaSqlite

Cita:
Iniciado por GreenEyed Ver Mensaje
Si teneis que hacer una aplicacion multiplataforma con BDD incrustada, quizá sería mejor optar por una BDD 100% Java (HSQLDB, Apache Derby...) con esas no deberia haber problema para moverlas de un sitio a otro y los drivers son tambien Java 100%, así que tampoco.

Además, funcionan con JDBC normal y corriente asi que todos los tutoriales de JDBC os servirán igual, una vez hecha la conexión.

S!

gracias por tu post, estare mirando en forma paralela estas opciones. Me hubiese gustado que el proyecto SQLite hubiese sido una realidad, pero por la urgencia, no tengo mucho tiempo como para poder correrla asi que, en estos momentos me encuentro trabajando con HSQLDB.

Saludos y gracias
  #7 (permalink)  
Antiguo 13/03/2007, 01:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: Java + JavaSqlite

No he trabajado con SQLLite, pero partiendo de que es una libreria en C y por lo tanto no es neutral en cuanto a plataforma, para algo fácilmente portable es mejor una solución 100% "movible".

La única pega con HSQLDB te la puede dar Windows con sus politicas tan "simpaticas" de bloqueo de ficheros, a veces en un reinicio no deja borrar el fichero de .lock y la BDD se cree que ya esta siendo usada, pero eso pasa mas en aplicaciones web por su naturaleza.

Simplemente hay que asegurarse de cerrar apropiadamente la BDD (con un SHUTDOWN si no paras toda la JVM) y aparte de eso sin problemas. Yo he trabajado hasta con CLOBs con ella y no he encontrado muchos mas problemas.

S!
  #8 (permalink)  
Antiguo 13/03/2007, 10:40
 
Fecha de Ingreso: mayo-2002
Mensajes: 32
Antigüedad: 22 años
Puntos: 0
Re: Java + JavaSqlite

Cita:
Iniciado por GreenEyed Ver Mensaje
No he trabajado con SQLLite, pero partiendo de que es una libreria en C y por lo tanto no es neutral en cuanto a plataforma, para algo fácilmente portable es mejor una solución 100% "movible".

La única pega con HSQLDB te la puede dar Windows con sus politicas tan "simpaticas" de bloqueo de ficheros, a veces en un reinicio no deja borrar el fichero de .lock y la BDD se cree que ya esta siendo usada, pero eso pasa mas en aplicaciones web por su naturaleza.

Simplemente hay que asegurarse de cerrar apropiadamente la BDD (con un SHUTDOWN si no paras toda la JVM) y aparte de eso sin problemas. Yo he trabajado hasta con CLOBs con ella y no he encontrado muchos mas problemas.

S!

Sabes una cosa, me llama la curiosidad el como HSQLDB guarda en archivos los datos.

y mi pequeña consulta es si al momento de hacer la coneccion a la base de datos, esta se levanta completamente en memoria?? ( eso me da la impresion )

que pasaria si tuvieras una base de datos de aproximadamente un 1 millon de datos o mas?? .. si levantase todo en memoria, entonces la memoria del computador seria.... 0

Saludos
  #9 (permalink)  
Antiguo 13/03/2007, 11:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: Java + JavaSqlite

Si y no . HSQLDB tambien puede trabajar en modo servidor, y entonces tienes que poner en marcha un servidor etc, como una BDD normal, y un modo "en memoria". El modo "en memoria" efectivamente carga la BDD en memoria y en caso de tener una BDD muy grande, no es lo más conveniente. De todas formas, los campos de tipo BLOB y CLOB no se guardan en memoria sino en disco, así que una BDD grande en memoria sin contar esos objetos sería una "muy señora BDD".

Aun así en las ultimas versiones hay una forma, creo recordar, de decirle si una tabla la quieres en memoria o quieres que la lea de disco, así que siempre podrías sacrificar algo de rendimento y decirle que las tablas más grandes y menos usadas las guarde en disco.

Y por último, si necesitas una "muy señora" BDD con acceso eficiente... entonces no deberías mirar bases embebidas en memoria, para no sobrecargar una maquina con la aplicacion y la BDD a la vez, así que no es "tanto" problema.

Es decir, tienen un nicho para el cual son muy muy útiles, pero no hay que "sacarlas de sitio" por que si no te encontraras naturalmente con muchos problemas.

PD: Una estrategia que pareció favorecer Oracle durante un tiempo, aunque no he vuelto a oir mencionar el tema, era usar una BDD en memoria desde la aplicación que "transparentemente" hacía de cache de una BDD Oracle por detras. Si realmente funcionara de forma transparente sería una forma estupenda, ya que una gran parte del tiempo en muchas aplicaciones se pierde en los datos viajando por la red entre la BDD y la aplicación, sobretodo en aplicaciones que usen ORM's (Object Relational Mappers) como Hibernate, JPA, JDO....

Como ejemplo: El Rincon Java http://www.greeneyed.org/guide/java/ usa, en su implementación actual, Hibernate y HSQLDB. Antes de eso usaba Hibernate y Oracle. Porté la BDD, cargue todos los datos, cambié el driver JDBC y modifiqué la cadena de conexión y sin tocar ni una linea de codigo el tiempo de respuesta fue 20 veces mejor, simplemente ahorrandome el tráfico por la red. Como la BDD es pequeña (911KB) es una solución perfecta y me ahorro tener que configurar MySQL en el hosting y en mi casa etc etc.

Pero para otras cosas no la usaría.
  #10 (permalink)  
Antiguo 13/03/2007, 19:47
 
Fecha de Ingreso: mayo-2002
Mensajes: 32
Antigüedad: 22 años
Puntos: 0
Re: Java + JavaSqlite

bueno en eso tienes razon... mi busqueda en realidad es producto de que el programa que estoy desarrollando debe permitir un trabajo con una base de datos secundaria, en caso de no poder conectarse a la base de datos primaria, ya que por X razones la aplicacion debe permitir trabajar sin conexion hacia internet.

entonces el dilema esta en que si esto ocurre, siempre se mantiene una base de datos replica desde la base de datos de internet que puede tener un X peso de memoria + lo que puede generar en modo de desconexion.

Ahora bien, supuestamente el diseño de programa esta basado en personas con un minimo de conocimientos ( personas que aun usa excel con una calculadora en mano o que si se les pregunta que decia aquel mensaje de error... respuesta : ACEPTAR o CANCELAR)

entonces no podemos forzar a un cliente a que instale una base de datos en su pc, debemos contemplar aquel lastre en el programa.

ahora bien yo creo que HSQLDB cono configuracion file me podra soportar tal especificacion.

bueno.. si conoces algun tutorial donde expliquen una configuracion de db estilo postgres o lo mas cercano a estas, sera bienvenido ;)

Saludos y gracias por tu post
  #11 (permalink)  
Antiguo 14/03/2007, 03:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: Java + JavaSqlite

Cita:
Iniciado por resh Ver Mensaje
bueno en eso tienes razon... mi busqueda en realidad es producto de que el programa que estoy desarrollando debe permitir un trabajo con una base de datos secundaria, en caso de no poder conectarse a la base de datos primaria, ya que por X razones la aplicacion debe permitir trabajar sin conexion hacia internet.
En estos casos lo habitual es tener en local una "version reducida" de la BDD, con solo los datos imprescindibles para manejarse en local, almacenando además los cambios que se han hecho. Cuando hay conexion a Internet, se conecta con la BDD primaria y se realiza una "concilización" de los datos. Ojo, esto puede funcionar muy bien si la parte cliente es principalmente de lectura y/o la parte de escritura es indendiente entre clientes. Si no, la fase de conciliacion puede ser una verdadera pesadilla cuando se encuentre con distintas actualizaciones de distintos clientes que le generan conflictos en los datos.

Cita:
Iniciado por resh Ver Mensaje
entonces el dilema esta en que si esto ocurre, siempre se mantiene una base de datos replica desde la base de datos de internet que puede tener un X peso de memoria + lo que puede generar en modo de desconexion.
Lo suyo sería minimizar la parte local de la BDD, para evitar replicaciones y actualizaciones grandes, aunque si la BDD es básicamente de modo lectura, como un catalogo de productos por ejemplo, pues quiza toque replicarla. En ese caso, una buena compresion de los ficheros de la BDD (que son de texto) haría maravillas. Una opción sería tener 2 BDD, una en modo lectura con la replica de la BDD central y otra mas pequeña para la parte de trabajo offline. Despues usando algo como JavaWebStart, la actualización de la BDD de lectura podrías ser casí automática, tratandola como un fichero más.

Cita:
Iniciado por resh Ver Mensaje
Ahora bien, supuestamente el diseño de programa esta basado en personas con un minimo de conocimientos ( personas que aun usa excel con una calculadora en mano o que si se les pregunta que decia aquel mensaje de error... respuesta : ACEPTAR o CANCELAR)

entonces no podemos forzar a un cliente a que instale una base de datos en su pc, debemos contemplar aquel lastre en el programa.
Si ese es el caso, una BDD en memoria se adapta muy bien puesto que la instalacion es "cero".

Cita:
Iniciado por resh Ver Mensaje
ahora bien yo creo que HSQLDB cono configuracion file me podra soportar tal especificacion.
Por lo que comentas, parece que si. No se si es la idea, pero una aplicacion JavaWebStart que permita el modo offline con una BDD HSQLD, y por otro lado se "actualize sola al arrancar" cuando hay conexión a Internet, sería lo primero que se me ocurriría probar. Pero siempre hay muchos factores a tener en cuenta, así que...

Cita:
Iniciado por resh Ver Mensaje
bueno.. si conoces algun tutorial donde expliquen una configuracion de db estilo postgres o lo mas cercano a estas, sera bienvenido ;)
¿huh? No entiendo a que te refieres con una configuracion de DB estilo postgreSQL

PD: Para trabajar con HSQLDB, más que usar la AdminTool que viene con él, útil para los primeros pasos pero "limitada", por ser educado , a mi me gusta usar SQuirrelSQL(http://squirrel-sql.sourceforge.net/) que es un poco más "amigable".
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 22:54.