java - 我可以让 H2 在内存数据库中自动创建模式吗?

标签 java sql database h2

(我已经看过 H2 database In memory - Init schema via Spring/Hibernate 问题;这里不适用。)

我想知道 H2 中是否有允许我在连接到它时自动创建架构的设置。如果有帮助,我只对内存中的情况感兴趣。

H2 在 URL 末尾支持各种以分号分隔的修饰符,但我没有找到用于自动创建架构的修饰符。有这样的功能吗?

最佳答案

是的,H2 支持 executing SQL statements when connecting .你可以运行一个脚本,或者只是一个或两个语句:

String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST"
String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST\\;" + 
                  "SET SCHEMA TEST";
String url = "jdbc:h2:mem;" + 
             "INIT=RUNSCRIPT FROM '~/create.sql'\\;" + 
                  "RUNSCRIPT FROM '~/populate.sql'";

请注意,双反斜杠 (\\) 仅在 Java 中是必需的。 INIT; 之前的反斜杠是必需的。

关于java - 我可以让 H2 在内存数据库中自动创建模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225700/

相关文章:

java - Java 小程序中的 Tiff 图像

sql - Group By 问题 - 需要为唯一的列组合获取最近的行

mysql - 将 LIKE 与 CONCAT 一起使用

mysql - 更新我的数据库中的好友列表

Java解析字符串表达式

java - 字符串比较 : individual comparison Vs appended string comparison

mysql - 效率: How many MySQL rows should I pull at a time?

database - 用于记录用户操作的优雅模式

sql - 将 MySQL 转储导入 R(不需要 MySQL 服务器)

java - 游戏实际上从哪里开始?