我正在尝试从 SQL 文件创建内存中的 H2 数据库,如文档中所示。我将tables.sql文件保存在src/main/resources/sql/文件夹中,并尝试按如下方式创建数据库。 public static HikariConfig getHikariConfigH2(String schema, String pathToSchemaSql) { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:h2:mem:" + schema + ";DATABASE_TO_UPPER=false;" + "MODE=MySQL" + ";DB_CLOSE_DELAY=-1" + ";INIT=create schema if not exists " + schema + "\\;SET SCHEMA " + schema + "\\;" + "INIT=runscript from '" + pathToSchemaSql + "'" ); config.setUsername("sa"); config.setPassword(""); return config; } public void testSetup() {
> HikariConfig configurationMaster = getHikariConfigH2("schema_name", "src/main/resources/sql/tables.sql"); DataSource master = new HikariDataSource(configurationMaster); }tables.sql 文件的内容是CREATE TABLE item_types ( id int NOT NULL, typeName varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;我不确定为什么它期待插入语句。有人可以帮忙吗
1 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
您需要INIT=
从连接 URL 中的 SQL 命令中间删除意外的秒数。
+ ";INIT=create schema if not exists " + schema + "\\;SET SCHEMA " + schema + "\\;" + /* problem was here */ "runscript from '" + pathToSchemaSql + "'"
添加回答
举报
0/150
提交
取消