
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ランキング
-
C言語のポインターに関する警告
-
EclipseでJava
-
JSPやサーブレットでSystem.out...
-
NaNではなく、0と表示させたい
-
java プログラミングについて
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
ファイル名に変数を使う(Java)
-
会員情報登録プログラムの作成...
-
DOMで要素の値がNULL
-
eclipse,mysql,javaエラー
-
java.util.Dateについて
-
文字列の引き算
-
複数行キーボード入力した後に...
-
java シンボルが見つかりません...
-
配列を後ろから数えるには?
-
JAVA 文字色変更
-
java Calendarクラス
-
データベースに接続できません。
-
同色かどうかの確認(Colorクラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPやサーブレットでSystem.out...
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
EclipseでJava
-
java int integer
-
「続行するには何かキーを押し...
-
構文解析中にファイルの終わり...
-
文字列の引き算
-
Javaでカレントディレクトリを...
-
JAVAのDouble型の小数点以下の...
-
配列を後ろから数えるには?
-
float型の桁調整について
-
vb6 オブジェクトライブラリは...
-
JAVA 文字色変更
-
データベースに接続できません。
-
DOMで要素の値がNULL
-
Javaのプログラムがどうしても...
-
JDBCでのinsertについて
-
java Calendarクラス
-
コメントアウトされたエスケー...
おすすめ情報