diff --git a/modules/clients/build.gradle b/modules/clients/build.gradle index cdd3ba7..a778d3f 100644 --- a/modules/clients/build.gradle +++ b/modules/clients/build.gradle @@ -157,3 +157,15 @@ tasks.register('runKeepAlive', JavaExec) { systemProperty 'org.slf4j.simpleLogger.showShortLogName', 'true' systemProperty 'org.slf4j.simpleLogger.levelInBrackets', 'true' } + +tasks.register('runTables', JavaExec) { + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.tsurugidb.tsubakuro.examples.tables.Main' + + systemProperty 'tsurugi.dbname', findProperty('tsurugi.dbname') ?: 'ipc:tsurugi' + + systemProperty 'org.slf4j.simpleLogger.defaultLogLevel', findProperty('loglevel') ?: 'info' + systemProperty 'org.slf4j.simpleLogger.showThreadName', 'false' + systemProperty 'org.slf4j.simpleLogger.showShortLogName', 'true' + systemProperty 'org.slf4j.simpleLogger.levelInBrackets', 'true' +} diff --git a/modules/clients/src/main/java/com/tsurugidb/tsubakuro/examples/tables/Main.java b/modules/clients/src/main/java/com/tsurugidb/tsubakuro/examples/tables/Main.java new file mode 100644 index 0000000..195b817 --- /dev/null +++ b/modules/clients/src/main/java/com/tsurugidb/tsubakuro/examples/tables/Main.java @@ -0,0 +1,44 @@ +package com.tsurugidb.tsubakuro.examples.tables; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import com.tsurugidb.tsubakuro.exception.ServerException; +import com.tsurugidb.tsubakuro.channel.common.connection.UsernamePasswordCredential; +import com.tsurugidb.tsubakuro.common.Session; +import com.tsurugidb.tsubakuro.common.SessionBuilder; +import com.tsurugidb.tsubakuro.sql.SqlClient; + +public final class Main { + private Main(String[] args) { + } + + // set dbname as follows + // -Ptsurugi.dbname=ipc:tsurugi or + // -Ptsurugi.dbname=tcp://localhost:12345 + // when run this example by `./gradlew run` command + private static String url = System.getProperty("tsurugi.dbname"); + + public static void main(String[] args) { + try ( + Session session = SessionBuilder.connect(url) + .withCredential(new UsernamePasswordCredential("user", "pass")) + .create(10, TimeUnit.SECONDS); + SqlClient sqlClient = SqlClient.attach(session)) { + + var tableList = sqlClient.listTables().get(); + for (var t : tableList.getTableNames()) { + var metadata = sqlClient.getTableMetadata(t).get(); + System.out.println("---- table name = " + t + " ----"); + for (var c : metadata.getColumns()) { + System.out.println("column = " + c); + System.out.println(); + } + } + + } catch (Exception e) { + System.err.println(e); + } + } +}