protected <T> T query(@NotNull final SqlQuery<T> query) { return DB.inTransaction(new InTransaction<T>() { @Override public T run(@NotNull final DBTransaction tran) { return tran.query(query).run(); } }); }
protected <T> T query(@NotNull final SqlQuery<T> query, final Object... params) { return DB.inTransaction(new InTransaction<T>() { @Override public T run(@NotNull final DBTransaction tran) { return tran.query(query).withParams(params).run(); } }); }
@Test(expected = NoTableOrViewException.class) public void recognize_NoTableOrView() { DB.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { tran.query("select * from unexistent_table", Layouts.existence()).run(); } }); }
@Test public void query_1000_values() { List<Integer> values = DB.inTransaction(new InTransaction<List<Integer>>() { @Override public List<Integer> run(@NotNull final DBTransaction tran) { return tran.query("select X from X1000 order by 1", listOf(oneOf(Integer.class))).run(); } }); assertThat(values).isNotNull() .hasSize(1000) .contains(1,2,3,4,998,999,1000); }
@Test public void query_1000000_values() { List<Integer> values = DB.inTransaction(new InTransaction<List<Integer>>() { @Override public List<Integer> run(@NotNull final DBTransaction tran) { return tran.query("select X from X1000000 order by 1", listOf(oneOf(Integer.class))).run(); } }); assertThat(values).isNotNull() .hasSize(1000000) .contains(1,2,3,4,999998,999999,1000000); }
@Test public void select_1_in_transaction() { assert DB != null; DB.connect(); DB.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { final Integer v = tran.query("select 1 " + TH.fromSingleRowTable(), Layouts.singleOf(Integer.class)) .run(); assertThat(v).isNotNull() .isEqualTo(1); } }); }