3

Oracle Thin Driver を使用して Oracle 10 XE データベースに接続しようとしていますが、接続できません。コンパイル中にドライバーをクラスパスに追加しました。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class Connectivity {
    public static void main(String args[]) throws SQLException {
        String url = "jdbc:oracle:thin:@localhost:1521:XE";
        Properties props = new Properties();

        props.setProperty("user", "SYSTEM");
        props.setProperty("password", "iiita");

        try {
            Class.forName ("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        }
        Connection conn = DriverManager.getConnection(url,props);
        String sql ="select sysdate as current_day from dual";

        PreparedStatement preStatement = conn.prepareStatement(sql);

        ResultSet result = preStatement.executeQuery();

        while(result.next()){
            System.out.println("Current Date from Oracle : " +  result.getString("current_day"));
        }

        System.out.println("done");

    }
}

このコードは、実行中に次のエラーを返します

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521/XE
    at java.sql.DriverManager.getConnection(DriverManager.java:644)
    at java.sql.DriverManager.getConnection(DriverManager.java:202)
    at Connectivity.main(Connectivity.java:16)
4

2 に答える 2

3

への呼び出しの前にこの行を追加してくださいgetConnection(url, props)

Class.forName ("oracle.jdbc.driver.OracleDriver");

jdbc ドライバー > 4.0 バージョンでない限り、クラスパスに jar を配置するだけでは十分ではありません。実際にドライバーを に登録する必要がありDriverManagerます。

に変更jdbc:oracle:thin:@localhost:1521:XEjdbc:oracle:thin:@//localhost:1521:XEます。これが新しい構文だと思います。

次のようにコンパイル

javac -classpath /<your_path>/ojdbc6.jar Connectivity.java

として実行

java Connectivity
于 2013-02-18T17:30:24.073 に答える
1

メイン クラスの実行時に ojdbc14 クラスパスを指定するのを忘れました。

Windows の場合:java -cp .;<path>/ojdbc14.jar Connectivity

Linux の場合: java -cp .:<path>/ojdbc14.jar Connectivity

PSメインクラスをコンパイルするために、クラスパスにojdbc14.jarは必要ありません。これは実行時の依存関係です。

于 2013-02-18T18:28:13.437 に答える