Tsurugi Iceaxeから接続

参考文献: 次世代高速オープンソースRDB Tsurugi (神林飛志 et al. 著)


https://www.ne.jp/asahi/hishidama/home/tech/tsurugi/tsubakuro/index.html
https://github.com/project-tsurugi/iceaxe/tree/master/modules/iceaxe-examples


OS: Ubuntu 22.04

CPU: 2
memory : 8G


前提: 
Gradle 8.3 インストール済
Java 11 インストール済
Tsurugi  インストール済
Belayer 1.1.0 インストール済

 


mkdir -p ~/tmp/hellotsurugi
cd ~/tmp/hellotsurugi

mkdir -p src/main/java/com/example


cat <<-'EOF' > src/main/java/com/example/HelloTsurugi.java


package com.example;

import java.io.IOException;
import java.net.URI;
import java.util.List;
import java.util.Optional;

import com.tsurugidb.iceaxe.TsurugiConnector;
import com.tsurugidb.iceaxe.metadata.TgTableMetadata;
import com.tsurugidb.iceaxe.session.TsurugiSession;
import com.tsurugidb.iceaxe.sql.parameter.TgBindParameters;
import com.tsurugidb.iceaxe.sql.parameter.TgBindVariable;
import com.tsurugidb.iceaxe.sql.parameter.TgParameterMapping;
import com.tsurugidb.iceaxe.sql.result.TgResultMapping;
import com.tsurugidb.iceaxe.transaction.manager.TgTmSetting;
import com.tsurugidb.iceaxe.transaction.option.TgTxOption;
import com.tsurugidb.tsubakuro.channel.common.connection.UsernamePasswordCredential;


public class HelloTsurugi {

        public static void main(String[] args) throws IOException, InterruptedException {

        var endpoint = URI.create("tcp://localhost:12345");
        var connector = TsurugiConnector.of(endpoint);

        try (var session = connector.createSession()) {
                var tm = session.createTransactionManager();
                tm.executeDdl( "create table tab2 ( col1 int primary key)");

        }
    }

}

EOF

 

 

cat <<-'EOF' > build.gradle

plugins {
    id 'java'
}

sourceCompatibility = 11

repositories {
    mavenCentral()
}

dependencies {
  implementation 'com.tsurugidb.iceaxe:iceaxe:1.1.0'
  implementation 'org.slf4j:slf4j-simple:1.7.32'

 implementation "com.tsurugidb.tsubakuro:tsubakuro-session:1.1.0"
 implementation "com.tsurugidb.tsubakuro:tsubakuro-connector:1.1.0"
 implementation "com.tsurugidb.tsubakuro:tsubakuro-explain:1.1.0"
}

jar {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes 'Main-Class': 'com.example.HelloTsurugi'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
EOF

 

 

LANG=C tree

gradle clean build

LANG=C tree

java -jar build/libs/hellotsurugi.jar

 

tgsql --connection tcp://localhost:12345

begin read only;
select * from tab2;
commit;

\exit