-
Notifications
You must be signed in to change notification settings - Fork 7
Features
Sondre Eikanger Kvalø edited this page May 3, 2018
·
3 revisions
@Rule
public final EmbeddedDatabaseRule dbRule =
EmbeddedDatabaseRule.builder() // defaults to using the H2 engine
.withMode(CompatibilityMode.Oracle) // defaults to none if not specified
.withInitialSql("CREATE TABLE Customer(id INTEGER PRIMARY KEY, name VARCHAR(512)); "
+ "INSERT INTO CUSTOMER(id, name) VALUES (1, 'John Doe')")
.build();
@Test
public void testUsingRxJdbc() throws Exception {
assertNotNull(dbRule.getConnection());
final Database database = Database.from(dbRule.getConnection());
assertNotNull(database.select("SELECT sysdate from DUAL")
.getAs(Date.class)
.toBlocking()
.single());
assertEquals("John Doe", database.select("select name from customer where id=1")
.getAs(String.class)
.toBlocking()
.single());
}
@Test
public void testUsingSpringJdbc() throws Exception {
final JdbcOperations jdbcOperation = new JdbcTemplate(dbRule.getDataSource());
final int id = 2;
final String customerName = "Jane Doe";
final int updatedRows = jdbcOperation.update("INSERT INTO CUSTOMER(id, name) VALUES(?,?)", id, customerName);
assertEquals(1, updatedRows);
assertEquals(customerName, jdbcOperation.queryForObject("SELECT name from CUSTOMER where id = ?", String.class, id));
}
@Test
public void testUsingConnectionUrl() throws Exception {
try(final Connection connection = DriverManager.getConnection(embeddedDatabaseRule.getConnectionJdbcUrl())) {
try(final Statement statement = connection.createStatement();
final ResultSet resultSet = statement.executeQuery("SELECT * from CUSTOMER")
) {
assertTrue(resultSet.next());
}
}
}