为了账号安全,请及时绑定邮箱和手机立即绑定

H2 数据库 - 从 sql 文件创建表

H2 数据库 - 从 sql 文件创建表

POPMUISE 2023-04-13 14:34:00
我正在尝试从 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 + "'"



查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 295 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信