Je suis attiré par la netteté qu'offre une base de données à fichier unique. Quelle bibliothèque de pilotes / connecteurs existe pour se connecter et utiliser SQLite avec Java.
J'ai découvert une bibliothèque d'encapsuleurs, http://www.ch-werner.de/javasqlite , mais y a-t-il d'autres projets plus importants disponibles?
Réponses:
Le wiki répertorie quelques autres wrappers:
la source
J'ai trouvé votre question lors de la recherche d'informations avec SQLite et Java. Je pensais juste ajouter ma réponse que j'ai également publiée sur mon blog .
Je code en Java depuis un moment maintenant. Je connais également SQLite mais je ne l'ai jamais utilisé… Eh bien, je l'ai utilisé via d'autres applications mais jamais dans une application que j'ai codée. J'en avais donc besoin pour un projet cette semaine et c'est tellement simple d'utilisation!
J'ai trouvé un pilote Java JDBC pour SQLite. Ajoutez simplement le fichier JAR à votre chemin de classe et importez java.sql. *
Son application de test créera un fichier de base de données, enverra quelques commandes SQL pour créer une table, stockera des données dans la table, la relira et affichera sur la console. Il créera le fichier test.db dans le répertoire racine du projet. Vous pouvez exécuter cet exemple avec
java -cp .:sqlitejdbc-v056.jar Test
.la source
Je comprends que vous avez posé des questions spécifiques sur SQLite, mais peut-être que la base de données HSQL serait mieux adaptée à Java. Il est écrit en Java lui-même, s'exécute dans la JVM, prend en charge les tables en mémoire, etc. et toutes ses fonctionnalités le rendent très utilisable pour le prototypage et les tests unitaires.
la source
Le projet de David Crawshaw (sqlitejdbc-v056.jar) semble obsolète et la dernière mise à jour date du 20 juin 2009, source ici
Je recommanderais la fourche Xerials du wrapper sqlite Crawshaw. J'ai remplacé sqlitejdbc-v056.jar par le fichier Xerials sqlite-jdbc-3.7.2.jar sans aucun problème.
Utilise la même syntaxe que dans la réponse de Bernie et est beaucoup plus rapide et avec la dernière bibliothèque sqlite.
Qu'est-ce qui est différent du SQLite JDBC de Zentus?
EDIT : Comme d'habitude lorsque vous mettez à jour quelque chose, il y aura des problèmes dans un endroit obscur de votre code (ce qui m'est arrivé). Test test test =)
la source
sqlite-jdbc
projet est génial, mais sachez qu'il est sous licence Apache . Par conséquent, vous devez attribuer si vous l'utilisez, que votre code soit FOSS ou propriétaire.Il y a un nouveau projet SQLJet qui est une implémentation Java pure de SQLite. Il ne prend pas encore en charge toutes les fonctionnalités SQLite, mais peut être une très bonne option pour certains des projets Java qui fonctionnent avec les bases de données SQLite.
la source
Le message de Bernie est très utile. Impossible de voter (pas assez de réputation :(). Mais cela a beaucoup aidé. Juste pour réitérer!
http://www.zentus.com/sqlitejdbc/
Vous trouverez ici le dernier pot JDBC SQLite. Ajoutez simplement le pot dans votre chemin de classe et vous avez terminé! :) Vous pouvez exécuter l'exemple de code de Bernie pour tester si tout va bien.
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.sqlite.org/lang.html
Vous trouverez ici de l'aide sur la syntaxe SQL pour SQLite. Bravo à SQLite :)
la source
Lorsque vous compilez et exécutez le code, vous devez définir la valeur des options de chemin de classe. Tout comme ce qui suit:
Veuillez faire attention à "." et le sparate ";" (win, le linux est ":")
la source
Le code sqlitejdbc peut être téléchargé à l'aide de git depuis https://github.com/crawshaw/sqlitejdbc .
Remarque: Makefile nécessite un binaire curl pour télécharger les bibliothèques / dépôts sqlite.
la source
L'exemple de code conduit à une fuite de mémoire dans Tomcat (après le retrait du déploiement de la webapp, le chargeur de classe reste en mémoire), ce qui entraînera
outofmemory
éventuellement un . La façon de le résoudre est d'utiliser le sqlite-jdbc-3.7.8.jar ; c'est un instantané, donc il n'apparaît pas encore pour maven.la source
Faute de frappe:
java -cp .:sqlitejdbc-v056.jar Test
devrait être:
java -cp .:sqlitejdbc-v056.jar; Test
remarquez le point-virgule après ".jar" j'espère que cela aide les gens, pourrait causer beaucoup de tracas
la source
.:xxx.jar;
n'a pas de sens. Et vous devez également spécifier le nom du package pour la classe Test.