}
final ExcelDataContext dc = new ExcelDataContext(file);
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback cb) {
Schema schema = dc.getDefaultSchema();
Table table1 = cb.createTable(schema, "my_table_1").withColumn("foo").withColumn("bar")
.withColumn("baz").execute();
assertEquals(1, schema.getTableCount());
assertSame(table1.getSchema(), schema);
assertSame(table1, schema.getTables()[0]);
Table table2 = cb.createTable(schema, "my_table_2").withColumn("foo").withColumn("bar")
.withColumn("baz").execute();
assertSame(table2.getSchema(), schema);
assertSame(table2, schema.getTables()[1]);
assertEquals(2, schema.getTableCount());
cb.insertInto(table1).value("foo", 123.0).value("bar", "str 1").value("baz", true).execute();
}
});
dc.refreshSchemas();
Schema schema = dc.getDefaultSchema();
assertEquals(2, schema.getTableCount());
assertEquals("[my_table_1, my_table_2]", Arrays.toString(schema.getTableNames()));
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback cb) {
cb.insertInto(dc.getTableByQualifiedLabel("my_table_1")).value("foo", 456.2)
.value("bar", "парфюмерия +и косметика").value("baz", false).execute();
}
});
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback cb) {
cb.insertInto("my_table_1").value("foo", 789).value("bar", DateUtils.get(2011, Month.JULY, 8))
.value("baz", false).execute();
}
});
DataSet ds = dc.query().from("my_table_1").select("foo").and("bar").and("baz").execute();
assertTrue(ds.next());
assertEquals("Row[values=[123, str 1, true]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[456.2, парфюмерия +и косметика, false]]", ds.getRow().toString());
assertTrue(ds.next());
assertEquals("Row[values=[789, 2011-07-08 00:00:00, false]]", ds.getRow().toString());
assertFalse(ds.next());
ds.close();
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
callback.deleteFrom("my_table_1").where("foo").greaterThan("124").execute();
}
});
assertEquals("1",
MetaModelHelper.executeSingleRowQuery(dc, dc.query().from("my_table_1").selectCount().toQuery())
.getValue(0).toString());
ds = dc.query().from("my_table_1").select("foo").and("bar").and("baz").execute();
assertTrue(ds.next());
assertEquals("Row[values=[123, str 1, true]]", ds.getRow().toString());
assertFalse(ds.next());
ds.close();
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
callback.dropTable("my_table_1").execute();
}
});
assertEquals("[my_table_2]", Arrays.toString(schema.getTableNames()));
dc.refreshSchemas();
assertEquals("[my_table_2]", Arrays.toString(schema.getTableNames()));
assertEquals(1, dc.getDefaultSchema().getTableCount());
}