首先,我想说我是 h2 数据库的新手。我需要在 h2 数据库中执行一个 sql 脚本文件。我有一个脚本文件 test.sql,我想在 h2 数据库中执行它。可能吗?
4 回答
您可以使用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
它们应该会被拾取并自动运行
此外,您可以使用属性指定要运行的数据文件。例如,将属性添加到您的application.properties
喜欢
spring.datasource.data=classpath:users.sql, classpath:books.sql, classpath:reviews.sql
将配置spring来运行这三个sql文件而不是运行data.sql
在 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,请从此处下载(单击jar
每个版本旁边的链接)。一些 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 日更新)
对我来说,系统回应:
没有找到 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