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

我正在尝试从 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;

我不确定为什么它期待插入语句。


有人可以帮忙吗


POPMUISE
浏览 296回答 1
1回答

守着一只汪

您需要INIT=从连接 URL 中的 SQL 命令中间删除意外的秒数。                  + ";INIT=create schema if not exists " + schema + "\\;SET SCHEMA " + schema + "\\;"                   + /* problem was here */ "runscript from '" + pathToSchemaSql + "'"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java