*

[java, JDBC]AS400からOracleに接続をする

公開日: : AS400, i Series, java, Oracle, System i

javaでAS400からOracleに接続する必要があったときのメモを清書。

AS400のPGMがODBC(JDBC)でオープン系RDB(リレーショナルデータベース)に接続するときの方法です。
半分はAS400でjavaを起動する方法にもなっています。

AS400からjdbcドライバーを手に入れて、IFS環境に置きます。
IFS環境はAS400のWindowsなどからみたファイルシステムです。エクスプローラでIP+\(ex;「192.168.0.100\」と入力)でログイン出来ます。
今回のは [ip]\qibm\ProdData\Java400\ を基本の環境とします。

oracleの公式でドライバーをダウンロードでします。
(接続先のOracleによって色々バージョンがあるので注意)

ダウンロードしたらそのドライバを.jarのままIFS\qibm\ProdData\Java400\ に保管。

そして、JCBCドライバを利用したjavaを以下のように記述して「HandleOracle.java」という名前で、同様に
\qibm\ProdData\Java400\ に保管。

import java.sql.*;

public class HandleOracle{
	public static void main(String[] args) {
		try{
			String oracleServer = "192.168.0.33"; //OracleServerの接続先
			String url = "jdbc:oracle:thin:@" + oracleServerIp + ":xe"; //ExpressEdtionなので:xe
			String user = "hoge";
			String pass = "hoge";
			
			Class.forName("oracle.jdbc.driver.OracleDriver");
			Connection con = DriverManager.getConnection(url, user, pass);
			Statement st = con.createStatement();
			
			for(int i = 0; i < 1000; i++){
				st.executeUpdate("insert into table1 values(100)");
			}


			ResultSet rs = st.executeQuery("select * from table1");
			if(rs != null){
				while(rs.next()){
					System.out.println(rs.getString("col1"));
				}
			}
			rs.close();
			
			st.close();
			con.close();
			
			System.out.println("Complete");
		}catch(Exception e){
			System.out.println(e);
		}
	}
}

↑適当にOracleのtable1にデータを挿入して、selectしてます。
(Oracle側の準備は前もって必要です)

Class.forName("oracle.jdbc.driver.OracleDriver");

で、ドライバを登録しています。クラスパスが通っているところを探しますので環境変数必須です。

というわけで環境変数などの環境づくり。
エミュレータを起動して

CHGJOB CCSID(5035)
WRKENVVAR

CCSIDを変更して、環境変数の追加をします。環境変数の単位は今回は*JOBで。

追加する環境変数は↓みたいな感じ
AS400_

CLASSPATHという環境変数を作って
/qibm/ProdData/Java400/
/qibm/ProdData/Java400/ojdbc6.jar
にパスを通すんですね。
ちなみに今回の私が使ったjdbcドライバがojdbc6.jarという名前なので、適宜変更してください。

さて、いよいよ実行です。
まずはエミュレータ

STRQSH

を実行して、Shellを呼び出します。

そしてShellでjavaのコンパイルです。

javac HandleOracle.java

最後に実行です。
そのままshellで実行するなら

java HandleOracle

ASのコマンドから実行するなら

RUNJVA CLASS(HandleOracle)

こんな感じ。
参考になったでしょうか。
お疲れ様でした。

ad

関連記事

wannabenote

[jt400, java]AS400用のJavaをPCで実行したとき、終了しない理由

終了しない JavaでAS400をいじってると、たまに、終了しないんです。 プロセスが残ったまま

記事を読む

logo

[Java, DBUtils]ApacheのDBUtilsを利用して、データベースにアクセスする。

手抜きがしたい オブジェクト指向をする上で、o/r mapperが欲しくなります。 かなーり昔に

記事を読む

logo

PCからAS400のコマンドを実行する方法

C#でAS400のRPGを呼んだりコマンドを実行する方法はこちら→C#でAS400のプログラムCal

記事を読む

wannabenote

[Oracle, SQLDeveloper]Oracleの構築とSQLDeveloperを設定、GUIでテーブルを表示するまで

Oracleを使い込む必要が出来たので、その備忘録です。 とりあえずはインストールから環境構築して

記事を読む

AS400_1

PCを新しくしました〜5250エミュレータの受難編〜

会社のPCを新しくしました。 CPUがi5でメモリは8GBで、とアホみたいな顔しながら注文して

記事を読む

logo

[C#]AS400のメンバーを指定してデータにアクセスする

◆前提条件◆ CliantAccessをインストールしている。 .NET Framework3.

記事を読む

logo

[C#]AS400をDBに見立ててPCのPGMからODBC接続する

◆前提条件◆ PCにClient Accessがインストールされている。 PCに.NET Fra

記事を読む

logo

[SQL, DB2]FETCH FIRSTで指定した行数データを取得する(営業日計算)

営業日計算 営業日を計算するのは結構面倒です。 特に独自のテーブルだと非常に厄介です。 例

記事を読む

logo

[C#, AS400]列挙体の文字列化&DB2/400にODBC接続

定数をなるべく書きたくないんです。 あとからメンテをするときに複数箇所変更しなくてはいけないから。

記事を読む

cwbx.dll 参照の追加

[C#,AS400]C#でAS400のプログラムCallとコマンドの実行方法。

PCのプログラムからCall AS400のRPGPGMをPCから呼び出ししたいときがあります。

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑