- 
                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());
        }
    }
}