JDBCについて – プログラミング – Home

通知
すべてクリア

[解決済] JDBCについて

固定ページ 1 / 2

ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

質問です。<br/ ><br/ >JDBCを使いたいのですが、どうやってJBuilderに取り組めば<br/ >よいのでしょうか??<br/ >ネットからJDBCDriverをダウンロードしてきて、それからどうして<br/ >いいのかわかりません。<br/ >ちなみに、JBuilderは7のエンタープライズを使ってます。<br/ >ご教授お願いします。<br/ >

 

This topic was modified 5年前 by ららら

引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

import java.sql.*;
import java.util.*;

public class JDBC_trial {

public static void main(String[] args) {

Connection connection;

// たとえばJDBC-ODBCドライバだったら
String sDriver = sun.jdbc.odbc.JdbcOdbcDriver;

String sDataSource = jdbc:odbc:XXXX; // データソース名
String sUserName = XXXX; // ユーザ名
String sPassword = XXXX; // パスワード

try {
// ドライバに火をつけて
Class.forName(sDriver).newInstance();
// DBに接続
connection = DriverManager.getConnection(sDataSource,
sUserName,
sPassword);
// SQL-Statementをこさえて
Statement stmt = connection.createStatement();
try {
stmt.executeUpdate(DROP TABLE person);
} catch ( Exception e ) {
System.out.println(can't DROP ... ignore);
}

// SQLを投げてみる。
stmt.executeUpdate(CREATE TABLE person ( name VARCHAR(20), phone VARCHAR
(20) ));
stmt.executeUpdate(INSERT INTO person VALUES ( 'hoge', '333-4444-
5555'));
stmt.executeUpdate(INSERT INTO person VALUES ( 'payo', '000-1111-
2222'));
stmt.executeUpdate(INSERT INTO person VALUES ( 'payo', '666-7777-
8888'));

String uni = SELECT * FROM person WHERE person.name = 'payo';
PreparedStatement prep = connection.prepareStatement(uni);
ResultSet results = prep.executeQuery();
while ( results.next() ) {
String name = results.getString(name);
String phone = results.getString(phone);
System.out.println(name + / + phone);
}
} catch ( Exception e ) {
e.printStackTrace();
}
}

}


返信引用
ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

String sDataSource = jdbc:odbc:XXXX; // データソース名

のデータソース名っていうのは何を入力すればいいのでしょうか??

XXXXの部分です。IPアドレスなのか、それともデータベース名を書けばいいのか
ご教授お願いします。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

ODBCですから、ODBCデータソース名です。
他のDBではそれぞれに異なるでしょう。


返信引用
ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

java.sql.SQLException: No suitable driver

の意味がわかんないです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

どんな環境でなにをどうしたらどこでどうなったのかを明記せずに
java.sql.SQLException: No suitable driver
の意味がわからんと言われてもどうしようもないです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

No suitable driver なんだから、
適切なドライバが見当たらん。
と言うてるんじゃないですか?


返信引用
ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

ご返答ありがとうございました。
まだ、原因がわかりませんがドライバをもう一度
確認してみます。


返信引用
草
 草
(@草)
ゲスト
結合: 22年前
投稿: 25
 

JDBC-ODBCブリッジを使用するのか
thin(Type4) ドライバなのかによって
手順が多少違うかも

環境がわからないけどWin+ODBCなら
ODBCの登録を行わないといけません。
type4ドライバーを使用しているなら
>String sDriver = sun.jdbc.odbc.JdbcOdbcDriver;
ここの記述を変えなければね。


返信引用
ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

行っている環境ですが、
データベースはUNIXのSolarisにありまして、Oracle9iを使っています。
自分のとこのOSはWINです。
JAVAのSwingを使ってJDBCで情報を取り出したいのですが

public void init()
{
try
{
Class.forName( oracle.jdbc.driver.OracleDriver );
}
catch(ClassNotFoundException e1)
{
e1.printStackTrace();
}
}
の部分はコンパイルで正常にとおります。
実行時で
Connection conn = DriverManager.getConnection
(jdbc:oracle:thin:@oracle:1521:oracle.net,java,java);

の部分で
SQLException : NO Suitable Driver 
とエラーが出ます。いまだ原因がわかりません。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

僕が冒頭で呈示したコードのドライバ/データソース/ユーザ/パスワード'だけ'
を適切に変更し、コンパイル/実行してもダメなのかしら?


返信引用
草
 草
(@草)
ゲスト
結合: 22年前
投稿: 25
 

oracle.jdbc.driver.OracleDriver.Connection conn = DriverManager.getConnection
としてしまうのも手かもしれませんね。

Class.forNameがいつまで有効なのか私もよくわかって
いないのですが、ClassNotFoundExceptionが発生していないのであれば、
DriverManager.getConnectionのところまで効果が届いていないのかなぁ?

あとは、「:@oracle:1521:oracle.net」が気になります。
@マシンアドレス:ポート:OracleSIDとなります。
oracleがDNS解決されていないかもしれませんね。
であればTCP/IPで直接指定を試してみるのも手かもしれません?

あまり的を得ていませんが
がんばってください。


返信引用
草
 草
(@草)
ゲスト
結合: 22年前
投稿: 25
 

蛇足ですが

http://www.borland.co.jp/qanda/jbuilder/jfaq0152.html


返信引用
ビルくん
 ビルくん
(@ビルくん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

ご返答ありがとうございます。

ふと思ったことがあるのですが、自分が使っている端末はWINですが
データベースがある端末はUNIXです。

JDBCDRIVERをダウンロードしたのはWIN用です。
UNIX用を使用しなければいけないということはないのでしょうか??

新たに最初から試みた結果、java.lang.ClassNotFoundException
が発生しました。
エラーの場所が
Class.forName(oracle.jdbc.driver.OracleDriver);
の部分です。
ちゃんと、環境設定は行ったのですが、このエラーが
起こってしまうのは、DRIVERがあってないということなのでしょうか??


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 新たに最初から試みた結果、java.lang.ClassNotFoundException
> が発生しました。
> エラーの場所が
> Class.forName(oracle.jdbc.driver.OracleDriver);
> の部分です。

ドライバを見つけることができていませんね。
-classpath <ドライバのfull-path>
をくっつけて実行してもダメですか?


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました