/** * Add default SQL scripts to execute to populate the database. * <p>The default scripts are {@code "schema.sql"} to create the database * schema and {@code "data.sql"} to populate the database with data. * @return {@code this}, to facilitate method chaining */ public EmbeddedDatabaseBuilder addDefaultScripts() { return addScripts("schema.sql", "data.sql"); }
@Override public void run() { EmbeddedDatabase db = builder// .addScripts("db-schema.sql", "db-test-data.sql")// .build(); assertDatabaseCreatedAndShutdown(db); } });
@Override public void run() { EmbeddedDatabase db = builder// .addScripts("db-schema-comments.sql", "db-test-data.sql")// .build(); assertDatabaseCreatedAndShutdown(db); } });
@Override public void run() { EmbeddedDatabase db = builder// .setType(H2)// .addScripts("db-schema.sql", "db-test-data.sql")// .build(); assertDatabaseCreatedAndShutdown(db); } });
@Override public void run() { EmbeddedDatabase db = builder// .addScripts("db-schema-custom-comments.sql", "db-test-data.sql")// .setCommentPrefix("~")// .build(); assertDatabaseCreatedAndShutdown(db); } });
@Override public void run() { EmbeddedDatabase db = builder// .setType(DERBY)// .ignoreFailedDrops(true)// .addScripts("db-schema-derby-with-drop.sql", "db-test-data.sql").build(); assertDatabaseCreatedAndShutdown(db); } });
@Override public void run() { EmbeddedDatabase db = builder// .addScripts("db-schema-block-comments.sql", "db-test-data.sql")// .setBlockCommentStartDelimiter("{*")// .setBlockCommentEndDelimiter("*}")// .build(); assertDatabaseCreatedAndShutdown(db); } });
@Test public void createSameSchemaTwiceWithoutUniqueDbNames() throws Exception { EmbeddedDatabase db1 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))// .addScripts("db-schema-without-dropping.sql").build(); try { new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))// .addScripts("db-schema-without-dropping.sql").build(); fail("Should have thrown a ScriptStatementFailedException"); } catch (ScriptStatementFailedException e) { // expected } finally { db1.shutdown(); } }
@Test public void createSameSchemaTwiceWithGeneratedUniqueDbNames() throws Exception { EmbeddedDatabase db1 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))// .addScripts("db-schema-without-dropping.sql", "db-test-data.sql")// .generateUniqueName(true)// .build(); JdbcTemplate template1 = new JdbcTemplate(db1); assertNumRowsInTestTable(template1, 1); template1.update("insert into T_TEST (NAME) values ('Sam')"); assertNumRowsInTestTable(template1, 2); EmbeddedDatabase db2 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))// .addScripts("db-schema-without-dropping.sql", "db-test-data.sql")// .generateUniqueName(true)// .build(); assertDatabaseCreated(db2); db1.shutdown(); db2.shutdown(); }
/** * Add default SQL scripts to execute to populate the database. * <p>The default scripts are {@code "schema.sql"} to create the database * schema and {@code "data.sql"} to populate the database with data. * @return {@code this}, to facilitate method chaining */ public EmbeddedDatabaseBuilder addDefaultScripts() { return addScripts("schema.sql", "data.sql"); }
@Bean public DataSource dataSourcePartner() { return new EmbeddedDatabaseBuilder()// .setType(EmbeddedDatabaseType.HSQL)// .ignoreFailedDrops(true)// .addScripts("classpath:org/springframework/batch/core/schema-drop-hsqldb.sql", "classpath:org/springframework/batch/core/schema-hsqldb.sql", "classpath:schema-partner.sql")// .build(); }
@Bean public DataSource dataSource() throws PropertyVetoException { boolean embeddedDatabase = Boolean.valueOf(environment.getProperty("wikift.database.embedded.enable")); if (embeddedDatabase) { EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); return builder.setType(EmbeddedDatabaseType.H2) .addScripts("schema.sql", "data.sql") .build(); } else { DriverManagerDataSource dataSource = new DriverManagerDataSource(); String dbType = environment.getProperty("wikift.database.type"); Assert.notNull(dbType, "dababase type must not null"); switch (dbType) { case "mysql": String dbMySQLClass = environment.getProperty("wikift.database.mysql.class"); dataSource.setDriverClassName(dbMySQLClass); Assert.notNull(dbMySQLClass, "mysql driver class must not null"); String dbMySQLUrl = environment.getProperty("wikift.database.mysql.url"); Assert.notNull(dbMySQLUrl, "mysql connection url must not null"); dataSource.setUrl(dbMySQLUrl); String dbMySQLUser = environment.getProperty("wikift.database.mysql.username"); Assert.notNull(dbMySQLUser, "mysql connection user name must not null"); dataSource.setUsername(dbMySQLUser); String dbMySQLUserPassword = environment.getProperty("wikift.database.mysql.password"); Assert.notNull(dbMySQLClass, "mysql connection user password must not null"); dataSource.setPassword(dbMySQLUserPassword); } return dataSource; } }
@Bean(name = "dataSource", destroyMethod = "shutdown") @Profile("test") public DataSource dataSourceForTest() { return new EmbeddedDatabaseBuilder() .generateUniqueName(true) .setType(EmbeddedDatabaseType.H2) .setScriptEncoding("UTF-8") .ignoreFailedDrops(true) .addScript("schema.sql") .addScripts("data.sql") .build(); }
@Bean @Primary public DataSource dataSource() { EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); return builder.setType(EmbeddedDatabaseType.H2).addScripts("eventuate-tram-embedded-schema.sql", "eventuate-tram-sagas-embedded.sql").build(); }
@Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .generateUniqueName(true) .setType(EmbeddedDatabaseType.H2) .setScriptEncoding("UTF-8") .ignoreFailedDrops(true) .addScript("schema.sql") .addScripts("data.sql") .build(); }