首先,我想说是h2数据库的新手。我需要在h2数据库中执行sql脚本文件。我有一个脚本文件test.sql,我想在h2数据库中执行它。有可能吗?
答案 0 :(得分:83)
您可以使用RUNSCRIPT SQL statement:
RUNSCRIPT FROM 'test.sql'
或者您可以使用RunScript standalone / command line tool:
java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script test.sql
您还可以在应用程序中使用RunScript工具:
RunScript.execute(conn, new FileReader("test.sql"));
答案 1 :(得分:7)
如果您在H2中使用spring-boot和spring-test,它会自动在类路径中查找schema.sql
和data.sql
并尝试运行它们。因此,如果你将它们放入src/test/resources
,它们应该被选中并自动运行
此外,您可以指定要使用属性运行的数据文件。例如,向application.properties
添加属性
spring.datasource.data=classpath:users.sql, classpath:books.sql, classpath:reviews.sql
将配置spring以运行这三个sql文件而不是运行data.sql
答案 2 :(得分:6)
在OSX上(这应该不重要),使用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,请从here下载(点击每个版本旁边的jar
链接)。与罐子的一些直接链接如下:
1.4.193 (2016年10月31日更新)
1.4.192 (2016年5月26日更新)
1.4.191 (2016年1月21日更新)
1.4.190 (2016年10月11日更新)
答案 3 :(得分:2)
对我而言,系统回复:
没有找到org.h2.tools.RunScript驱动程序
解决方案是:
java -classpath <path_to_your_h2-*.jar> org.h2.tools.RunScript \
-url jdbc:h2:tcp://localhost/~/test -script test.sql
请参阅:http://www.h2database.com/html/tutorial.html#using_server