記事
· 2024年5月6日 4m read

LinuxでJDBC接続を行う方法

前回、LinuxでODBC接続を行う方法 をご紹介しました。

今回は、LinuxでJDBC接続を行う方法 をご紹介します。作業は、root ユーザ で行います。

はじめに、Linuxのバージョンを確認します。

$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
:


1. yumパッケージのアップデートを行います

$ su -
Password:
Last login: Tue May  7 01:04:35 UTC 2024 on pts/0
# yum update


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


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

※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

※すべてのユーザで使用できるよう、環境変数を永続化させる場合は、/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)


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();
    } 
}

コンパイル&実行します。

# 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


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 のサンプルと同じ


詳細は以下のドキュメントをご覧ください。
JDBC ドライバの使用法
InterSystems SQL の基礎 : JDBC とインターシステムズのデータベース

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください