
javaからDB2にアクセスしようとして下記のコードを書きましたが、全く動きません。
C言語ではSQL文でコネクトできるのですが、javadでは違うようです。
得られた画面表示は
try
error code 0
です。
DB2 Epress-C 10.5.0.420
Java SE Development Kit Update 40 (64-bit)
import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
#sql iterator ItrPos (String, String);
#sql context Myctx;
class Test14{
public static void main(String[] args) {
String col1 = "";
String col2 = "";
System.out.println("try");
try {
Myctx myctx = new Myctx("jdbc:db2:sample","user1","",false);
System.out.println("try2");
ItrPos itr;
System.out.println("try3");
#sql [myctx] itr = { select col1, col2 from Test1 };
System.out.println("select");
while (itr.endFetch() == false){
#sql { fetch :itr into :col1, :col2 };
System.out.println("fetch");
if(itr.endFetch()){
System.out.println(col1 + col2);
}
}
}
catch(Exception e) {
if (e instanceof java.sql.SQLException) {
System.out.println("error code: " + ((java.sql.SQLException)(e)).getErrorCode());
}
}
}
}
No.5ベストアンサー
- 回答日時:
おそらく、利用PCにC言語用のクライアント(CLI、ODBC)はインストールされているが、
Java用のクライアント(JDBC)がインストールされていないのでしょう。
下記のWindowsの手順を実行し、インストールしてください。
http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/i …
出来ました。
db2jcc.jar または db2jcc4.jar
JDBC 3.0 以前の機能だけが組み込まれているバージョンの IBM Data Server Driver for JDBC and SQLJ を使用する予定であれば、db2jcc.jar を CLASSPATH に組み込みます。
JDBC 4.0 以降の機能と、JDBC 3.0 以前の機能が組み込まれているバージョンの IBM Data Server Driver for JDBC and SQLJ を使用する予定であれば、db2jcc4.jar を CLASSPATH に組み込みます。
sqlj.zip または sqlj4.zip
JDBC 3.0 以前の機能だけが組み込まれた SQLJ アプリケーションを準備する予定であれば、sqlj.zip を CLASSPATH に組み込みます。
JDBC 4.0 以降の機能と、JDBC 3.0 以前の機能が組み込まれた SQLJ アプリケーションを準備する予定であれば、sqlj4.zip を CLASSPATH に組み込みます。
この手続だけでした。
No.4
- 回答日時:
貴環境で以下のファイルを含むように環境変数CLASSPATHを設定します。
どこにあるかは現状いただいている情報ではわかりません。検索してください。
sqlj_classes.jar
translator.zip
runtime.zip
検索方法はOSがわからないのでお示しできません。
格納先/sqlj_classes.jar:格納先/translator.zip:格納先/runtime.zip となります。
Windowsの場合は\でフォルダを区切ります。
設定方法も、ご利用のOSがわからないので、Windows 7の場合をお示しすると、
1)「スタート」
→「コンピュータ」を右クリック
2)左側の一覧から「システムの詳細設定」をクリック
3)「詳細設定」タブをクリック
4)「環境変数」ボタンをクリック
5)「システム環境変数」の新規をクリック
6)変数名:CLASSPATH 変数値:(jar及びzipが存在するフルパスとファイル名を指定します) を設定する
7)開いているウインドウを順々に「OK」ボタンをクリックして閉じる
UNIX系OS(bounce shell)の場合は、
$ export CLASSPATH=格納先/sqlj_classes.jar:格納先/translator.zip:格納先/runtime.zip
となります。
$ cd /
$ find . | grep sqlj_classes.jar
などとすると格納先が解るかと思います。
この回答への補足
3つとも、全く見当たりません。
java.sql.SQLException: No suitable driver found for jdbc:db2:sample
の原因がCLASSPATHにあるのでしょうか?
osはwindows7(64ビット)です。
あとどんな情報がいりますか?
No.3
- 回答日時:
この回答への補足
ありがとうございます。
ただ、/QIBM/ProdData/Java400/ext なんというフォルダーは存在しません。
私の環境でのページをご指導ください。
No.2
- 回答日時:
>System.out.println("error code: " + ((java.sql.SQLException)(e)).getErrorCode());
>}
このあとに
>System.out.println(e);
とすると、実行時に何が表示されますか?
この回答への補足
ありがとうございます。
try
try1
error code: 0
java.sql.SQLException: No suitable driver found for jdbc:db2:sample
となりました。
No.1
- 回答日時:
Myctx myctx = new Myctx("jdbc:db2:sample","user1","",false);の前の行に、
Class.forName( "COM.ibm.db2.jdbc.app.DB2Driver" );
を挿入してみてください。
参考
http://www-06.ibm.com/software/jp/data/db2univ/d …
http://d.hatena.ne.jp/spider-man/20080307/p1
この回答への補足
ありがとうございます。
System.out.println("try");
try {
Class.forName( "COM.ibm.db2.jdbc.app.DB2Driver" );
System.out.println("try1");
Myctx myctx = new Myctx("jdbc:db2:sample","user1","",false);
System.out.println("try2");
try2が出てきません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPやサーブレットでSystem.out...
-
javaで判別式のプログラミング...
-
EclipseでJava
-
C言語のポインターに関する警告
-
セッションのリセット
-
java シンボルが見つかりません...
-
StrutsでJSPからListを受け取り...
-
System.err. printlnとSystem.o...
-
eclipseに記述したjavaファイル...
-
System.out.printlnの出力先
-
JSPでImportエラーになります
-
プログラミングの問題です。大...
-
Java Struts ~に対するゲッタ...
-
Log4jで機能毎に別ファイルへ出...
-
九九を横に表示する。
-
C# ListBoxのインデックスの値...
-
getStringの値がNULLの時の処理
-
数値⇒漢数字変換 java
-
JSPでDBからデータ読み込みブラ...
-
Excel VBAで配列の途中から(X)M...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
[JAVA]try 内の変数を外で!?
-
「続行するには何かキーを押し...
-
文字列の引き算
-
JAVA 文字色変更
-
改行の判定方法
-
エクセルマクロ文で、赤文字セ...
-
Javaのコマンドライン引数を使...
-
全角スペースの判定について
-
JAVAのエラーの意味が分かりま...
-
Javaでカレントディレクトリを...
-
javaで判別式のプログラミング...
-
【Java】再帰的なプログラムで...
-
JAVAのDouble型の小数点以下の...
-
複数行キーボード入力した後に...
-
曜日の取得方法を教えて下さい!
-
文字列の置換について。
-
vb6 オブジェクトライブラリは...
おすすめ情報