java JDBC无法执行为测试创建表的ExecuteStatementException
我正在使用http://wakandan.github.io/2015/09/21/setup-dropwizard-testing-for-dao.html指南测试dao
我将我的DataSourceFactory
设置为
DataSourceFactory dataSourceFactory = new DataSourceFactory();
dataSourceFactory.setDriverClass( "org.h2.Driver" );
dataSourceFactory.setUrl( "jdbc:h2:mem:test-%s;MODE=MySQL;TRACE_LEVEL_FILE=3;INIT=CREATE SCHEMA IF NOT EXISTS MY_SCHEMA" );
dataSourceFactory.setUser( "sa" );
dataSourceFactory.setPassword( "" );
return dataSourceFactory;
我的sql
文件看起来像
USE my_schema;
CREATE TABLE users (
AutoId INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
...
) ENGINE = InnoDB, DEFAULT CHARSET = utf8;
我在使用mysql -uroot my_schema < 0001.sql
等之前使用过这些sql,它们工作得很好
使用
使用我的模式
handle.begin();
handle.createScript(FixtureHelpers.fixture("schema/0001.sql"))
.execute();
//and so on
handle.commit()
我明白了
org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: org.h2.jdbc.JdbcBatchUpdateException: Syntax error in SQL statement "CREATE TABLE MY_SCHEMA.USERS ( AUTOID INT UNSIGNED PRIMARY KEY AUTO_INCREMENT ... ) ENGINE = INNODB, DEFAULT CHARSET = UTF8 "; expected "USING, ,, )";
我做错了什么
共 (0) 个答案