La création d'une nouvelle base de données locale avec Java

Mon but est de créer une base de données locale qui peut être lu et écrit en Java. J'ai une certaine expérience avec la manipulation d'un local de base de données sqlite avec Python, et à interagir avec les bases de données en réseau existant sur Microsoft Azure via VB.Net mais le Java formulation pour la création d'une base de données s'échappe de moi.

La plupart des sources (comme le JDBC Docs) semblent partir du principe que vous accédez à une base de données via un protocole réseau, ou une base de données hébergée sur localhost. Mon choix de la mise en œuvre est de créer et de stocker la base de données dans un fichier (ou un ensemble de fichiers), de sorte qu'il peut être stockées et accessibles localement, sans connectivité réseau (présumable par le biais de la "fichier:" protocole).

La JDBC Tutoriel ressemble, il sera très utile une fois que je suis en place et en cours d'exécution, mais est actuellement au-delà de ma portée, puisque je n'ai même pas une base de données existante encore.

De nombreux sources ont suggéré des solutions telles que H2, MySQL, Derby, ou Hypersonique DB. Cependant, je suis réticent à installer des extensions (si c'est le bon terme) pour un certain nombre de raisons:

  • Ce projet est initialement prévu pour m'aider à apprendre mon chemin autour de Java - élargissement de la portée du projet va diluer mon expérience avec la langue de "base" et, probablement, d'accroître la tentation de s'engager dans le "culte du cargo de programmation"
  • Si ce projet n'a jamais distribué à d'autres utilisateurs (certes peu probable, mais quand même!), Je ne veux pas les forcer à l'installation de plus que le noyau de Java.
  • Je ne sais pas comment installer des extensions (add-ons? les modules?) en Java - un bébé-étape à la fois!

Pour des raisons similaires, l'installation de Microsoft SQL Server ne serait pas productif.

Cette réponse semble proche de ce que je vise; cependant, il donne l'erreur:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/?user=root&password=rootpassword

et essayant "jdbc:file://targetFile.sql" donne une erreur similaire.

J'ai vu le terme "intégré" de la base de données, ce qui je pense est un sous-ensemble de la "base de données locale" (c'est à dire une base de données locale est stocké sur le même système intégré de base de données est une base de données locale qui n'est utilisé que par une seule application) - si j'ai ces définitions erronées, n'hésitez pas à me corriger!

  • H2 est très puissant et c'est un simple bocal
  • Qu'entendez-vous par "installer les extensions"? Qu'est-ce précisément voulez-vous si ce n'est une base de données? Il n'existe pas de base de données dans la base de Java; Java de noyau est juste de base de Java. Lorsque vous distribuez votre projet, vous pouvez distribuer ce que vous voulez avec elle, y compris une pure Java DB comme H2 et Derby, et ils n'ont pas à faire quoi que ce soit. Vous ne voulez intégré DB, mais je voudrais offrir à vos utilisateurs la possibilité d'utiliser un arbitraire DB, ce qui est le JDBC permet de le faire.
  • Je recommanderais à un en mémoire DB comme H2 qui est capable de cache sur disque lorsque la JVM sorties: stackoverflow.com/questions/1932254/in-memory-java-db
  • ce que je voulais dire par "installer les extensions" (qui je le reconnais est probablement le mauvais terminologie), c'est que je ne veux pas que quelqu'un d'autre en utilisant le système soit nécessaire de télécharger ou d'installer quoi que ce soit d'autre. Je ne savais pas que c'était possible de distribuer du code supplémentaire avec votre propre merci!
InformationsquelleAutor scubbo | 2012-12-03