質問
まず私はh2データベースに新しいことを言いたいのです。H2データベースでSQLスクリプトファイルを実行する必要があります。スクリプトファイルtest.sqlがあり、これをH2データベースで実行します。それは可能ですか?
解決
RunScript SQL文:を使用できます。
RUNSCRIPT FROM 'test.sql'
.
または RunScriptスタンドアロン/コマンドラインツール:
java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script test.sql
.
アプリケーション内でRunScriptツールを使用することもできます。
RunScript.execute(conn, new FileReader("test.sql"));
. 他のヒント
h2でspring-bootとspring-testを使用している場合は、クラスパスのschema.sql
とdata.sql
を自動的に検索し、それらを実行しようとします。それで、あなたがそれらをsrc/test/resources
に入れるならば、それらは拾われて自動的に実行されるべきです
さらに、プロパティで実行するデータファイルを指定できます。たとえば、のようなyourapplication.properties
にプロパティを追加する
spring.datasource.data=classpath:users.sql, classpath:books.sql, classpath:reviews.sql
.
は、data.sql
を実行する代わりにこれら3つのSQLファイルを実行するようにSpringを設定します。
(これは本当に重要ではないはずです)v。1.4.192次のコマンドで、私が何を見たことができなかった:
java -cp h2*.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql
.
ここでselect.sqlは単に:
select * from PUBLIC.MYTABLE;
.
出力が現れる前に-showResults
を追加しなければなりませんでした。これが完全なコマンドです:
java -cp /Users/az/.m2/repository/com/h2database/h2/1.4.192/h2-1.4.192.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql -showResults
.
必要な瓶を持っていない場合は、 ここ (各バージョンの隣のjar
リンクをクリックしてください)。 JARへの直接のリンクは次のとおりです。
< EM> 1.4.193 (2016年10月31日)
1.4 .192 (2016年5月26日)
> 1.4 .191 (2016年1月21日)
1.4 .190 (2016年10月11日更新)
For me the system responded with:
didn't find org.h2.tools.RunScript driver
The solution was:
java -classpath <path_to_your_h2-*.jar> org.h2.tools.RunScript \
-url jdbc:h2:tcp://localhost/~/test -script test.sql
See: http://www.h2database.com/html/tutorial.html#using_server