Incorporation par programme de la base de données Java h2
Question
Pour le moment, nous utilisons HSQLDB comme base de données intégrée, mais nous recherchons une base de données moins encombrante en mémoire. lorsque le volume de données augmente.
Derby / JavaDB n'est pas une option pour le moment car il stocke les propriétés globalement dans les propriétés système. . Nous avons donc pensé à h2 .
Alors que nous utilisions HSQLDB, nous avons créé un objet Serveur, défini les paramètres et démarré. Ceci est décrit ici (et donné à titre d'exemple dans la classe org.hsqldb.test .TestBase).
La question est la suivante: cela peut-il être fait de la même manière avec la base de données h2? Avez-vous des exemples de code pour cela? En scannant la page h2, je n'ai pas trouvé d'exemple.
La solution
À partir du téléchargement, je constate que le fichier tutorial.html contient ceci
import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
Autres conseils
Oui, vous pouvez exécuter H2 en mode intégré. Vous utilisez simplement le pilote JDBC et vous vous connectez à une URL intégrée comme celle-ci (leur exemple):
Cette base de données peut être utilisée en mode embarqué mode, ou en mode serveur. Pour l'utiliser dans mode intégré, vous devez:
* Add h2.jar to the classpath * Use the JDBC driver class: org.h2.Driver * The database URL jdbc:h2:~/test opens the database 'test' in your user home directory
Exemple de connexion avec JDBC à une base de données H2 intégrée (adapté de http : //www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html ):
import org.h2.jdbcx.JdbcDataSource;
// ...
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
Connection conn = ds.getConnection();
Si vous souhaitez utiliser H2 en mode purement en mémoire / incorporé, vous pouvez également le faire. Voir ce lien pour plus d'informations:
Vous devez simplement utiliser une URL spéciale dans le code JDBC normal, telle que "jdbc: h2: mem: db1".
Si, pour une raison quelconque, vous avez besoin d'une base de données H2 intégrée en mode serveur, vous pouvez le faire manuellement à l'aide de l'API. sur http://www.h2database.com/javadoc/org/h2/ tools / Server.html - ou par en ajoutant; AUTO_SERVER = TRUE à l'URL de la base de données.