質問です。<br/ ><br/ >JDBCを使いたいのですが、どうやってJBuilderに取り組めば<br/ >よいのでしょうか??<br/ >ネットからJDBCDriverをダウンロードしてきて、それからどうして<br/ >いいのかわかりません。<br/ >ちなみに、JBuilderは7のエンタープライズを使ってます。<br/ >ご教授お願いします。<br/ >
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();
}
}
}
String sDataSource = jdbc:odbc:XXXX; // データソース名
のデータソース名っていうのは何を入力すればいいのでしょうか??
XXXXの部分です。IPアドレスなのか、それともデータベース名を書けばいいのか
ご教授お願いします。
ODBCですから、ODBCデータソース名です。
他のDBではそれぞれに異なるでしょう。
java.sql.SQLException: No suitable driver
の意味がわかんないです。
どんな環境でなにをどうしたらどこでどうなったのかを明記せずに
java.sql.SQLException: No suitable driver
の意味がわからんと言われてもどうしようもないです。
No suitable driver なんだから、
適切なドライバが見当たらん。
と言うてるんじゃないですか?
ご返答ありがとうございました。
まだ、原因がわかりませんがドライバをもう一度
確認してみます。
JDBC-ODBCブリッジを使用するのか
thin(Type4) ドライバなのかによって
手順が多少違うかも
環境がわからないけどWin+ODBCなら
ODBCの登録を行わないといけません。
type4ドライバーを使用しているなら
>String sDriver = sun.jdbc.odbc.JdbcOdbcDriver;
ここの記述を変えなければね。
行っている環境ですが、
データベースは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
とエラーが出ます。いまだ原因がわかりません。
僕が冒頭で呈示したコードのドライバ/データソース/ユーザ/パスワード'だけ'
を適切に変更し、コンパイル/実行してもダメなのかしら?
oracle.jdbc.driver.OracleDriver.Connection conn = DriverManager.getConnection
としてしまうのも手かもしれませんね。
Class.forNameがいつまで有効なのか私もよくわかって
いないのですが、ClassNotFoundExceptionが発生していないのであれば、
DriverManager.getConnectionのところまで効果が届いていないのかなぁ?
あとは、「:@oracle:1521:oracle.net」が気になります。
@マシンアドレス:ポート:OracleSIDとなります。
oracleがDNS解決されていないかもしれませんね。
であればTCP/IPで直接指定を試してみるのも手かもしれません?
あまり的を得ていませんが
がんばってください。
ご返答ありがとうございます。
ふと思ったことがあるのですが、自分が使っている端末はWINですが
データベースがある端末はUNIXです。
JDBCDRIVERをダウンロードしたのはWIN用です。
UNIX用を使用しなければいけないということはないのでしょうか??
新たに最初から試みた結果、java.lang.ClassNotFoundException
が発生しました。
エラーの場所が
Class.forName(oracle.jdbc.driver.OracleDriver);
の部分です。
ちゃんと、環境設定は行ったのですが、このエラーが
起こってしまうのは、DRIVERがあってないということなのでしょうか??
> 新たに最初から試みた結果、java.lang.ClassNotFoundException
> が発生しました。
> エラーの場所が
> Class.forName(oracle.jdbc.driver.OracleDriver);
> の部分です。
ドライバを見つけることができていませんね。
-classpath <ドライバのfull-path>
をくっつけて実行してもダメですか?