Me atrae la pulcritud que proporciona una base de datos de un solo archivo. Qué biblioteca de controladores / conectores hay para conectar y usar SQLite con Java.
He descubierto una biblioteca de contenedor, http://www.ch-werner.de/javasqlite , pero ¿hay otros proyectos más destacados disponibles?
Respuestas:
La wiki enumera algunos envoltorios más:
fuente
Encontré su pregunta mientras buscaba información con SQLite y Java. Solo pensé en agregar mi respuesta, que también publiqué en mi blog .
Llevo un tiempo codificando en Java. También he conocido SQLite pero nunca lo usé ... Bueno, lo he usado a través de otras aplicaciones pero nunca en una aplicación que codifiqué. ¡Así que lo necesitaba para un proyecto esta semana y es tan simple de usar!
Encontré un controlador JDBC de Java para SQLite. Simplemente agregue el archivo JAR a su classpath e importe java.sql. *
Su aplicación de prueba creará un archivo de base de datos, enviará algunos comandos SQL para crear una tabla, almacenará algunos datos en la tabla y los leerá y mostrará en la consola. Se va a crear el test.db archivo en el directorio raíz del proyecto. Puede ejecutar este ejemplo con
java -cp .:sqlitejdbc-v056.jar Test
.fuente
Entiendo que preguntaste específicamente sobre SQLite, pero tal vez la base de datos HSQL encajaría mejor con Java. Está escrito en Java, se ejecuta en la JVM, admite tablas en memoria, etc. y todas esas características lo hacen bastante útil para la creación de prototipos y pruebas unitarias.
fuente
El proyecto David Crawshaw (sqlitejdbc-v056.jar) parece desactualizado y la última actualización fue el 20 de junio de 2009, fuente aquí
Se lo recomiendo Xerials tenedor del envoltorio Crawshaw SQLite. Reemplacé sqlitejdbc-v056.jar con el archivo Xerials sqlite-jdbc-3.7.2.jar sin ningún problema.
Utiliza la misma sintaxis que en la respuesta de Bernie y es mucho más rápido y con la última biblioteca sqlite.
¿Qué es diferente del SQLite JDBC de Zentus?
EDITAR : como de costumbre cuando actualiza algo, habrá problemas en algún lugar oscuro en su código (me pasó a mí). Prueba prueba prueba =)
fuente
sqlite-jdbc
proyecto es excelente, pero tenga en cuenta que tiene licencia de Apache . Por lo tanto, debe atribuirlo si lo usa, ya sea que su código sea FOSS o propietario.Hay un nuevo proyecto SQLJet que es una implementación pura de Java de SQLite. Todavía no es compatible con todas las características de SQLite, pero puede ser una muy buena opción para algunos de los proyectos Java que funcionan con bases de datos SQLite.
fuente
La publicación de Bernie es muy útil. No se pudo votar (no tiene suficiente reputación :(). Pero ayudó mucho. ¡Solo para reiterar!
http://www.zentus.com/sqlitejdbc/
Aquí puede encontrar el último jar JDBC de SQLite. ¡Solo agrega el frasco en tu classpath y listo! :) Puedes ejecutar el código de muestra de Bernie para probar si todo está bien.
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.sqlite.org/lang.html
Aquí puede encontrar ayuda sobre la sintaxis SQL para SQLite. Saludos a SQLite :)
fuente
Cuando compila y ejecuta el código, debe establecer el valor de las opciones de classpath. Al igual que lo siguiente:
Por favor, preste atención a "." y el espaciado ";" (win, el linux es ":")
fuente
El código sqlitejdbc se puede descargar usando git desde https://github.com/crawshaw/sqlitejdbc .
Nota: Makefile requiere curl binary para descargar bibliotecas / deps de sqlite.
fuente
El código de ejemplo conduce a una pérdida de memoria en Tomcat (después de desplegar la aplicación web, el cargador de clases aún permanece en la memoria), lo que
outofmemory
eventualmente causará una falla. La forma de resolverlo es usar sqlite-jdbc-3.7.8.jar ; Es una instantánea, por lo que todavía no aparece para Maven.fuente
Error de tipografía:
java -cp .:sqlitejdbc-v056.jar Test
debiera ser:
java -cp .:sqlitejdbc-v056.jar; Test
observe el punto y coma después de ".jar", espero que ayude a las personas, podría causar mucha molestia
fuente
.:xxx.jar;
, no tiene sentido. Y también debe especificar el nombre del paquete para la clase Test.