diff --git a/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Insert.java b/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Insert.java index 59c682c..d4895c4 100644 --- a/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Insert.java +++ b/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Insert.java @@ -12,7 +12,7 @@ import com.tsurugidb.tsubakuro.sql.Parameters; public class Insert { - public static void doInsert(String url) throws IOException, ServerException, InterruptedException { + public static void doInsert(String url, boolean testResponse) throws IOException, ServerException, InterruptedException { try (Session session = SessionBuilder.connect(url).create(); SqlClient sqlClient = SqlClient.attach(session); PreparedStatement preparedStatement = sqlClient.prepare("INSERT INTO foo (bar1, bar2, bar3) VALUES (:int_for_bar1, :double_for_bar2, :char_for_bar3)", @@ -22,15 +22,25 @@ public static void doInsert(String url) throws IOException, ServerException, Int Transaction transaction = sqlClient.createTransaction().get();) { // insert first data into foo table - transaction.executeStatement(preparedStatement, + var f1 = transaction.executeStatement(preparedStatement, Parameters.of("int_for_bar1", (long) 1234), Parameters.of("double_for_bar2", (double) 56.789), - Parameters.of("char_for_bar3", "text for first data")).get(); + Parameters.of("char_for_bar3", "text for first data")); + if (testResponse) { + f1.close(); // test of FutureResponse close without performing get() + } else { + f1.get(); // normal operation; + } // insert second data into foo table - transaction.executeStatement(preparedStatement, + var f2 = transaction.executeStatement(preparedStatement, Parameters.of("int_for_bar1", (long) 5678), Parameters.of("double_for_bar2", (double) 123.45), - Parameters.of("char_for_bar3", "text for second data")).get(); + Parameters.of("char_for_bar3", "text for second data")); + if (testResponse) { + f2.close(); // test of FutureResponse close without performing get() + } else { + f2.get(); // normal operation; + } transaction.commit().get(); } } diff --git a/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Main.java b/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Main.java index 27e8b64..2028276 100644 --- a/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Main.java +++ b/modules/cases/src/main/java/com/tsurugidb/tsubakuro/examples/resultsetClose/Main.java @@ -1,5 +1,13 @@ package com.tsurugidb.tsubakuro.examples.resultsetClose; +// for command options +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; + import java.io.IOException; import java.util.ArrayList; @@ -7,8 +15,21 @@ public final class Main { private static String url = System.getProperty("tsurugi.dbname"); + private static boolean testResponse = false; public static void main(String[] args) { + // コマンドラインオプションの設定 + Options options = new Options(); + + options.addOption(Option.builder("z").argName("prepare").desc("do simple test.").build()); + + CommandLineParser parser = new DefaultParser(); + CommandLine cmd = null; + + if (cmd.hasOption("i")) { + testResponse = true; + } + try { CreateTable.doCreateTable(url); } catch (IOException | ServerException | InterruptedException e) { @@ -17,7 +38,7 @@ public static void main(String[] args) { return; } try { - Insert.doInsert(url); + Insert.doInsert(url, testResponse); } catch (IOException | ServerException | InterruptedException e) { System.out.println(e); e.printStackTrace();