4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaアプリケーションからTeradataにアクセスする

Last updated at Posted at 2019-10-03

Teradata JDBC Driverを使って、JavaアプリケーションからTeradataに接続する際の覚え書き。

環境

  • OpenJDK (11.0.3)
  • Gradle (5.6.2)
  • Teradata JDBC Driver (16.20.00.12)

Teradata JDBC Driverの取得

こちらからドライバをダウンロードします。なお、ダウンロードにはTeradata Downloadsのアカウントが必要です。

Driverパッケージのプロジェクトへの追加

取得したterajdbc4.jarを{PROJECT_ROOT}/libs以下に配置します。
さらにbuild.gradleのdependenciesブロックに以下を追記して、依存パッケージとして追加します。

dependencies {
    implementation files('libs/terajdbc4.jar')
}

(※ 16.20.00.11より前のバージョンではtdgssconfig.jarも配置・追記する必要があります)

DataSourceの定義・クエリの発行

DataSourceの実装であるTeraDataSourceを設定し、コネクションを取得、クエリの実行を行います。
(DriverManagerを使ってももちろん書けますが、DataSourceを使うほうが推奨されます。)

雑に書いたコードが以下。

import com.teradata.jdbc.TeraDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Application {

    public static void main(String[] args){

        TeraDataSource teraDataSource = new TeraDataSource();
        // 環境に合わせて設定する
        // パラメータの詳細:  https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/jdbcugjp/jdbcug_chapter_2.html#BABJIHBJ
        teraDataSource.setDSName("your.teradata.host");
        teraDataSource.setUser("johndoe");
        teraDataSource.setPassword("XXXX");
        teraDataSource.setLOGMECH("TD2");
        teraDataSource.setTMODE("ANSI");
        teraDataSource.setCHARSET("UTF8");
        teraDataSource.setENCRYPTDATA("ON");

        String query = "SELECT id FROM yourdb.yourtable";

        try (Connection conn = teraDataSource.getConnection();
                Statement st = conn.createStatement();
                ResultSet rs = st.executeQuery(query)){

            while (rs.next()) {
                // ResultSet#getXXXのcolumnは1-based indexなことに注意
                System.out.println(rs.getInt(1));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

これでTeradataのtableに対してSELECTを実行できました。

参考

https://docs.gradle.org/current/userguide/dependency_types.html#sub:file_dependencies
https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/jdbcugjp/jdbcug_chapter_2.html
https://docs.oracle.com/javase/jp/8/docs/api/javax/sql/DataSource.html

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?