参考文献: 次世代高速オープンソース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