前回、LinuxでODBC接続を行う方法 をご紹介しました。
今回は、LinuxでJDBC接続を行う方法 をご紹介します。作業は、root ユーザ で行います。
はじめに、Linuxのバージョンを確認します。
$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
:
Shell SessionShell Session
1. yumパッケージのアップデートを行います
$ su -
Password:
Last login: Tue May 7 01:04:35 UTC 2024 on pts/0
# yum update
Shell SessionShell Session
2. Java をインストールします
今回は、Adoptium OpenJDK の Version 8 - LTS を使用してテストします。
※ *.tar.gz は、/usr/java 以下にダウンロードします。
# cd /usr/java
# ls
OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz
# tar zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz
:
# ls
jdk8u412-b08 OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz
Shell SessionShell Session
3. IRISクライアントをインストールします
Linuxのバージョンにあったインストーラを使用してください。
# cd IRIS-2024.1.0.262.0-lnxrh9x64
# ./irisinstall_client
Your system type is 'Red Hat Enterprise Linux 9 (x64)'.
Enter a destination directory for client components.
Directory: /intersystems/iris
Directory '/intersystems/iris' does not exist.
Do you want to create it <Yes>?
Installation completed successfully
Shell SessionShell Session
※JDBC ドライバのみダウンロードしたい場合は、こちら から行えます(JDBC のリンクをクリック)。
4. 環境変数の設定を行います
(JAVA_HOME、PATH、LD_LIBRARY_PATH、CLASSPATH)
JAVA_HOME --- JDKがインストールされているディレクトリ
PATH --- $JAVA_HOME/bin + <IRISクライアントインストールディレクトリ>/bin
LD_LIBRARY_PATH --- $JAVA_HOME/lib
CLASSPATH --- <IRISクライアントインストールディレクトリ>/dev/java/lib/1.8/intersystems-jdbc-*.*.*.jar
# export JAVA_HOME=/usr/java/jdk8u412-b08
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/lib
# export PATH=$PATH:$JAVA_HOME/bin
# export PATH=$PATH:/intersystems/iris/bin
# ls /intersystems/iris/dev/java/lib/1.8
intersystems-binding-3.2.2.jar intersystems-messaging-1.3.0.jar
intersystems-cloudclient-1.2.2.jar intersystems-persister-1.0.0.jar
intersystems-cloud-manager-1.6.15.jar intersystems-rgateway-3.2.0.jar
intersystems-enslib-jms-3.2.0.jar intersystems-uima-1.0.0.jar
intersystems-jdbc-3.8.4.jar intersystems-utils-4.1.5.jar
intersystems-loader-1.2.3.jar intersystems-xep-3.2.1.jar
# export CLASSPATH=$CLASSPATH:/intersystems/iris/dev/java/lib/1.8/intersystems-jdbc-3.8.4.jar
Shell SessionShell Session
※すべてのユーザで使用できるよう、環境変数を永続化させる場合は、/etc/profile に追加します。
確認します。
$ which java
/usr/java/jdk8u412-b08/bin/java
$ which javac
/usr/java/jdk8u412-b08/bin/javac
$ java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (Temurin)(build 25.412-b08, mixed mode)
Shell SessionShell Session
5. IRISへのJDBC接続確認をします
こちらのサンプルでは、DriverManager クラスを使用した接続テスト を行います。
※現在のネームスペース内の全てのテーブル (およびビュー) に関する INFORMATION.SCHEMA.TABLES の情報をSelectするサンプルです。
/// JDBCSample.java
import java.sql.*;
public class JDBCSample {
public static void main(String[] str) throws Exception {
String url = "jdbc:IRIS://***.***.***.***:1972/USER/";
java.util.Properties prop = new java.util.Properties();
prop.put("user", "_System");
prop.put("password", "SYS");
// Replace _SYSTEM and SYS with a username and password on your system
Connection connection = DriverManager.getConnection(url,prop);
Statement statement = connection.createStatement();
String query = "SELECT top 5 TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES";
ResultSet resultSet = statement.executeQuery(query);
System.out.println("Printing out contents of SELECT query: ");
while (resultSet.next()) {
System.out.println(resultSet.getString(1) + ", " + resultSet.getString(2) + ", " + resultSet.getString(3));
}
resultSet.close();
statement.close();
connection.close();
}
}
JavaJava
コンパイル&実行します。
# javac JDBCSample.java
# java JDBCSample
Printing out contents of SELECT query:
%CSP_Util, CSPLogEvent, SYSTEM TABLE
%CSP_Util, Performance, SYSTEM TABLE
%Calendar, Hijri, SYSTEM TABLE
%Compiler_Informix, ConversionRule, SYSTEM TABLE
%Compiler_Informix, ImportedObject, SYSTEM TABLE
Shell SessionShell Session
※IRISDataSource を使用する場合は以下のようになります。
import com.intersystems.jdbc.IRISDataSource;
import java.sql.*;
public class JDBCSample {
public static void main(String[] str) throws Exception {
IRISDataSource ds = new IRISDataSource();
ds.setURL("jdbc:IRIS://***.***.***.***:1972/User");
ds.setUser("_system");
ds.setPassword("SYS");
Connection connection = ds.getConnection();
// 以下、DriverManager のサンプルと同じ
:
JavaJava
詳細は以下のドキュメントをご覧ください。
JDBC ドライバの使用法
InterSystems SQL の基礎 : JDBC とインターシステムズのデータベース