6
votes

Fournir une base de données avec un fichier Java .jar?

Je souhaite créer un programme que les utilisateurs fonctionnent simplement en exécutant un fichier .jar. Je souhaite que ce programme ait accès à une base de données, pré-rempli de données lorsque le programme est téléchargé pour la première fois et que l'utilisateur l'utilise, plus de données sont ajoutées à la DB.

La DB doit être stockée localement sur l'ordinateur de l'utilisateur.

Quelle est ma meilleure option pour cela? Quel moteur de base de données dois-je aller avec et que dois-je faire pour le faire pour que l'utilisateur n'ait pas à configurer la base de données lorsqu'il installe l'application, elle viendra pré-remplie avec le fichier .jar?


4 commentaires

Recherche de bases de données en mémoire que vous pouvez commencer dans le fichier Java lui-même


@Reddy Non, il y aura trop de données à stocker dans la mémoire.


@LUGIGIGIMENDOWOZA DOIT-il être installé?


Jetez un coup d'œil ici: Stackoverflow.com/Questtions/462923/...


3 Réponses :


2
votes

Utilisez Java DB , puis quand L'utilisateur commence le programme la première fois, chargez-lui un script.


0 commentaires

2
votes

Je regarderais H2 . C'est une bonne base de données avec de nombreuses options persistantes. De plus, depuis que vous utilisez Java, j'envisagerais de regarder en hibernate.


0 commentaires

7
votes

Une solution simple serait d'utiliser une base de données intégrée stockée localement sur le disque (par exemple près du fichier JAR). Vous pouvez utiliser H2 , ou même SQLITE pour cela.

Lors du chargement du programme vérifiera l'existence de la base de données, si ce n'est pas ici, jouez simplement un script SEUP SQL qui créera la structure de la base de données et les données initiales, sinon vous «Reprendre à partir, faites simplement que votre application a été créée pour faire.

Voici un exemple vraiment simple avec la base de données H2:

dise que vous êtes emballage d'un fichier SQL nommé init.sql dans le dossier / ressources / de votre pot, qui créera une table, quelque chose comme: xxx

Ensuite, quelque part dans votre code, où vous devez accéder aux données, vous allez essayer de charger la base de données ou de le créer s'il n'existe pas encore. xxx

après exécution, vous devrait avoir un fichier nommé foo.db en regard de votre application où réside les tables créées, etc.

Ceci est un exemple vraiment simple, bien sûr, vous pouvez utiliser n'importe quelle wrapp autour de JDBC pour éviter l'utilisation de ResultSet, etc., comme Spring JDBCtemplate, même pour charger l'instance de connexion, etc.


3 commentaires

SQLite sera un peu plus difficile car c'est un code natif. Ou existe-t-il une sorte de magploitation de plate-forme croisée préemballée pour cela?


Oui, vous avez raison sur SQLite, je ne l'ai pas vraiment réalisé, car il est déjà installé sur ma machine de développement, mais oui, il devrait préférer H2 pour cela s'il ne veut pas impliquer l'utilisateur à installer autre chose


Il h. J'ai aussi parfois parfois ce problème d'installation de logiciels sur ma machine par des sysadmines utiles que je ne réalisez pas ce n'est pas disponible partout!