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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
Javaのコマンドライン引数を使...
-
EclipseでJava
-
全角スペースの判定について
-
java教えてください。
-
データベースに接続できません。
-
JSPやサーブレットでSystem.out...
-
改行の判定方法
-
java int integer
-
JAVAのDouble型の小数点以下の...
-
JAVA 三角形の判定
-
IPアドレスから組織やプロバイ...
-
JAVA 文字色変更
-
ダブルクォーテーションを含む...
-
変数を動的に利用するには?
-
VBAで配列の計算
-
BOOL値を逆にしたい
-
大量のデータを読み込んで表示...
-
java 素数判定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
[JAVA]try 内の変数を外で!?
-
EclipseでJava
-
JAVAのエラーの意味が分かりま...
-
文字列の引き算
-
JAVA 文字色変更
-
改行の判定方法
-
エクセルマクロ文で、赤文字セ...
-
Javaでカレントディレクトリを...
-
JAVAのDouble型の小数点以下の...
-
DOMで要素の値がNULL
-
IPアドレスから組織やプロバイ...
-
Javaのプログラムがどうしても...
-
ファイル名に変数を使う(Java)
-
java int integer
-
java シンボルが見つかりません...
-
javaで判別式のプログラミング...
-
Javaプログラムについて質問で...
-
構文解析中にファイルの終わり...
おすすめ情報