
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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Ruby vscode 文字化け 1 2022/05/21 19:17
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング演習エラーについて
-
挿入演算子<<をオーバーロード...
-
C言語のポインターに関する警告
-
【Java】再帰的なプログラムで...
-
文字配列について
-
エクスクラメーション2つ?
-
改行の判定方法
-
Vectorクラスの使い方
-
javaアプレット repaintのタイ...
-
ピクチャボックスのクリックイ...
-
JAVAサーブレット。 HTML...
-
わかりません
-
System.err. printlnとSystem.o...
-
要素数が10の配列で、乱数0~9...
-
Javaで改行などが出来ないのです。
-
Excelの配列数式について
-
変数を動的に利用するには?
-
String型の値が大文字か小文字...
-
JPanelの重ね方/OverlayLayout他
-
javaの演算子の部分ですが 4行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
文字列の引き算
-
「続行するには何かキーを押し...
-
会員情報登録プログラムの作成...
-
Javaのコマンドライン引数を使...
-
java プログラミングについて
-
Javaでカレントディレクトリを...
-
複数行キーボード入力した後に...
-
JAVA 文字色変更
-
エクセルマクロ文で、赤文字セ...
-
配列を後ろから数えるには?
-
java シンボルが見つかりません...
-
改行の判定方法
-
JAVAのエラーの意味が分かりま...
-
JAVA 三角形の判定
-
nullcline
おすすめ情報