Help us understand the problem. What is going on with this article?

H2 データベースのJDBC接続文字列にてDDLを指定する

More than 3 years have passed since last update.

はじめに

H2 データベースで,メモリー内にデータベースを構築するようなとき,ファイルに書いてある DDL を流したいことがあると思います。
例えば, JUnit がデータベースにアクセスするテストケースでの使用が考えられますね。

書き方

スキーマを指定する場合と,しない場合を書き記します。

スキーマを指定したいケースは, MyBatis Generator 等のツールでスキーマを限定するようなケースを考えてのものです。

スキーマを指定しない場合

jdbc:h2:mem:test;INIT=RUNSCRIPT FROM SCRIPTPATH

  • SCRIPTPATH が DDL が書かれたファイルのパスです。
jdbc:h2:mem:test;INIT=RUNSCRIPT FROM '../../db/schema.sql'

スキーマを指定する場合

jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS SCHEMANAME\\;SET SCHEMA SCHEMANAME\\;RUNSCRIPT FROM SCRIPTPATH

  • SCHEMANAME が,スキーマの名称です。
  • SCRIPTPATH が DDL が書かれたファイルのパスです。
jdbc:h2:mem:test;/data;INIT=CREATE SCHEMA IF NOT EXISTS FOO\\;SET SCHEMA FOO\\;RUNSCRIPT FROM '../../db/schema.sql'
okoshi
Web アプリ,モバイルアプリ,Eclipse プラグイン、デスクトップアプリ等、色々作っては捨てています。最近は Firebase をあれこれしています。できるだけ,他人が載せていない記事を書いていきたいと思います。
increments
「エンジニアを最高に幸せにする」ために Qiita、Qiita Team、Qiita Jobs を開発・運営しています。
https://increments.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away