У вас есть 2 варианта:
- используйте spring для запуска базы данных H2 следующим образом (проверьте setName (), чтобы увидеть, как передать параметры URL, специфичные для H2, в построитель пружин):
Spring-код генерирует URL следующим образом:
String.format ("jdbc: h2: mem:% s; DB_CLOSE_DELAY = -1", databaseName)
Итак, в setName() Вы можете использовать любой параметр, относящийся к H2, в URL.
private DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase db = builder
.setType(EmbeddedDatabaseType.H2)
.setName("testdb;DATABASE_TO_UPPER=false;MODE=Oracle")
.addScript("schema.sql")
.addScript("data.sql")
.build();
return db;
}
непосредственно настроить URL БД, например:
org.h2.jdbcx.JdbcDataSource dataSource = new org.h2.jdbcx.JdbcDataSource ();dataSource.setURL ("jdbc: h2: testdb; MODE = MySQL; DATABASE_TO_UPPER = false; INIT = сценарий выполнения из 'src / test / resources / schema.sql' \; сценарий выполнения из 'src / test / resources / data.sql'");
Основное отличие состоит в том, что (2) выполняет сценарии, определенные в INIT, для каждого создания соединения с базой данных, а не один раз для создания БД!Это вызывает различные проблемы, такие как сбой INSERT из-за дублирования ключей и т.д ..