web-dev-qa-db-ja.com

JDBCを使用してOracleデータベースに接続するためのURL文字列形式

私はJava関連のWeb開発の初心者であり、JDBCが動作する単純なプログラムを入手できないようです。市販のOracle 10g XEとEclipse EE IDEを使用しています。これまでに確認した書籍とWebページから、問題をデータベースURLの記述が間違っているか、JARファイルが欠落していることに絞り込んでいます。次のエラーが表示されます。

Java.sql.SQLException:jdbc:Oracle://127.0.0.1:8080に適したドライバーが見つかりません

次のコードで:

import Java.sql.*;

public class DatabaseTestOne {
    public static void main(String[] args) {
        String url = "jdbc:Oracle://127.0.0.1:8080";
        String username = "HR";
        String password = "samplepass";

        String sql = "SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE LAST_NAME='King'";
        Connection connection;
        try {
            connection = DriverManager.getConnection(url, username, password);
            Statement statement = connection.createStatement();
            System.out.println(statement.execute(sql));
            connection.close();
        } catch (SQLException e) {
            System.err.println(e);
        }
    }
}

とにかく、データベースURLの適切な形式は何ですか?彼らは多く言及されていますが、私は説明を見つけることができませんでした。

編集(解像度):

Duffymoの答えに基づいて、私はojdbc14.jar from Oracleのダウンロードサイト で、Eclipseプロジェクトの参照ライブラリにドロップしました。次に、コードの開始を

...
// jdbc:Oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:Oracle:thin:@GalacticAC:1521:xe";
...

そしてそれは働いた。

33
Pops

こちら を見てください。

あなたのURLはまったく間違っています。次のようになります。

url="jdbc:Oracle:thin:@localhost:1521:orcl"

ドライバークラスも登録しません。シンドライバーJARをダウンロードし、CLASSPATHに配置して、コードを this のようにします。

更新:「ojdbc14.jar」の「14」はJDK 1.4を表します。実行しているJDKとドライバーのバージョンを一致させる必要があります。つまり、JDK 5または6を意味します。

37
duffymo

これを設定するには2つの方法があります。 SIDがある場合は、次の(古い)形式を使用します。

_jdbc:Oracle:thin:@[Host][:PORT]:SID
_

Oracleサービス名がある場合は、次の(新しい)形式を使用します。

_jdbc:Oracle:thin:@//[Host][:PORT]/SERVICE
_

ソース: このOraFAQページ

getConnection()への呼び出しは正しい

また、duffymoが言ったように、クラスパスに_ojdbc6.jar_を含めることで、実際のドライバーコードが存在することを確認します。番号は、使用しているJavaバージョンに対応します。

41
Pops

Urlの正しい形式は、次の形式のいずれかです。

jdbc:Oracle:thin:@<hostName>:<portNumber>:<sid>;  (if you have sid)
jdbc:Oracle:thin:@//<hostName>:<portNumber>/serviceName; (if you have Oracle service name)

そこにスペースを入れないでください。ポート番号として1521を使用してみてください。 sid(データベース名)は、環境変数にあるものと同じでなければなりません(Windowsを使用している場合)。

17
Clara

oracle 10g expree Editionを使用している場合:
1。クラスをロードするにはDriverManager.registerDriver (new Oracle.jdbc.OracleDriver());を使用します。2.データベースに接続するにはConnection conn = DriverManager.getConnection("jdbc:Oracle:thin:username/password@localhost:1521:xe");を使用します

4
String Host = <Host name>
String port = <port>
String service = <service name>
String dbName = <db schema>+"."+service
String url = "jdbc:Oracle:thin:@"+Host+":"+"port"+"/"+dbName
0
Pushkar Nayama
DriverManager.registerDriver(new Oracle.jdbc.driver.OracleDriver());         
connection = DriverManager.getConnection("jdbc:Oracle:thin:@machinename:portnum:schemaname","userid","password");
0
Steve Prior

私はJava開発者ではないので、残念ながらコードに直接コメントすることはできませんが、接続の形式に関してはOracle FAQひも

jdbc:Oracle:<drivertype>:<username/password>@<database>

Oracle JDBC FAQ から

http://www.Oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_

役立つことを願っています

0
Crippledsmurf