connection.createStatement().execute("DROP TABLE my_table");
} catch (Exception e) {
// do nothing
}
JdbcDataContext dc = new JdbcDataContext(connection);
final Schema schema = dc.getDefaultSchema();
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback cb) {
Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
.ofNativeType("SERIAL").nullable(false).withColumn("name").ofType(ColumnType.VARCHAR)
.ofSize(10).withColumn("foo").ofType(ColumnType.BOOLEAN).nullable(true).withColumn("bar")
.ofType(ColumnType.BOOLEAN).nullable(true).execute();
assertEquals("my_table", table.getName());
}
});
try {
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
callback.insertInto("my_table").value("name", "row 1").value("foo", true).execute();
callback.insertInto("my_table").value("name", "row 2").value("bar", true).execute();
callback.insertInto("my_table").value("name", "row 3").value("foo", true).execute();
callback.insertInto("my_table").value("name", "row 4").value("foo", true).execute();
callback.insertInto("my_table").value("name", "row 5").value("bar", true).execute();
callback.insertInto("my_table").value("name", "row 6").value("foo", true).value("bar", true)
.execute();
callback.insertInto("my_table").value("name", "row 7").value("foo", true).value("bar", true)
.execute();
callback.insertInto("my_table").value("name", "row 8").value("foo", false).value("bar", false)
.execute();
}
});
DataSet ds = dc.query().from("my_table").select("id").and("name").execute();
assertTrue(ds.next());
assertEquals("Row[values=[1, row 1]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[2, row 2]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[3, row 3]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[4, row 4]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[5, row 5]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[6, row 6]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[7, row 7]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[8, row 8]]", ds.getRow().toString());
assertFalse(ds.next());
ds.close();
} finally {
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
callback.dropTable("my_table").execute();
}
});