@Override public void run(@NotNull final DBSession session) { session.command(command).run(); } });
@Override public void run(@NotNull final DBSession session) { session.command("create table Turbo2000 (x smallint)").run(); DBCommandRunner cr = session.command("insert into Turbo2000 values (?)"); for (short i = 1; i <= 2000; i++) cr.withParams(i).run(); DBQueryRunner<Short[]> qr = session.query("select * from Turbo2000 order by 1", columnOf(Short.class)) .packBy(100); Short[] pack = qr.run(); assertThat(pack).isNotNull() .startsWith((short) 1) .endsWith((short) 100); int packs = 0; while (pack != null) { packs++; pack = qr.nextPack(); } assertThat(packs).isEqualTo(20); // 2000 / 100 = 20 } });
@Override public void performCommand(@NotNull final DBTransaction transaction, @NotNull final SqlCommand command) { transaction.command(command).run(); }
private void runCommand(final SqlCommand command) { myTransaction.command(command).run(); }
@Override public void run(@NotNull final DBSession session) { for (int i = 0; i < retries; ++i) { List<String> commands = session.query(metaQuery).withParams(params).run(); try { for (String command : commands) { if (command != null && command.length() > 0) { session.command(command).run(); } } i = retries + 1; } catch (DBException e) { if (i + 1 >= retries) throw e; } } } });
@Override public void run(@NotNull final DBSession session) { session.command("create table tab1 (x integer)").run(); session.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { tran.command("insert into tab1 values(44)").run(); } }); final SqlQuery<Integer> query = new SqlQuery<Integer>("select * from tab1", singleOf(Integer.class)); int x = session.inTransaction(new InTransaction<Integer>() { @Override public Integer run(@NotNull final DBTransaction tran) { return tran.query(query).run(); } }); session.command("drop table tab1").run(); assertThat(x).isEqualTo(44); } });
@Override public void run(@NotNull final DBSession session) { session.command("create table just_table_333 (x integer)").run(); session.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { tran.command("insert into just_table_333 values (111), (222), (333)").run(); tran.query("select * from just_table_333", singleOf(Integer.class)) .packBy(1) .run(); } }); JdbcIntermediateSession intermediateSession = session.getSpecificService(JdbcIntermediateSession.class, ImplementationAccessibleService.Names.INTERMEDIATE_SERVICE); assert intermediateSession != null; assertThat(intermediateSession.countOpenedSeances()).isZero(); assertThat(intermediateSession.countOpenedCursors()).isZero(); } });
@Test public void transaction_commit() { TH.ensureNoTableOrView("Tab_1"); TH.performCommand("create table Tab_1 (C1 char(1))"); TH.performCommand("insert into Tab_1 values ('A')"); DBLeasedSession session = DB.leaseSession(); try { assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); session.beginTransaction(); session.command("insert into Tab_1 values ('B')").run(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); session.commit(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); } finally { session.close(); } }
@Test public void transaction_rollback() { TH.ensureNoTableOrView("Tab_1"); TH.performCommand("create table Tab_1 (C1 char(1) not null)"); TH.performCommand("insert into Tab_1 values ('A')"); DBLeasedSession session = DB.leaseSession(); try { assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); session.beginTransaction(); session.command("insert into Tab_1 values ('B')").run(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); session.rollback(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); } finally { session.close(); } }