Формат строки URL для подключения к базе данных Oracle с помощью JDBC

Я новичок в веб-разработке, связанной с Java, и я не могу получить простую программу с JDBC. Я использую готовый Oracle 10g XE и Eclipse ee IDE. Из книг и веб-страниц, которые я проверил до сих пор, я сузил проблему до неправильно написанного 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 базы данных, в любом случае? Они упоминаются много, но я не смог найти описания.

EDIT (разрешение):

исходя из ответа duffymo, я получил ojdbc14.jar С сайт загрузки Oracle и сбросил его в ссылочных библиотеках проекта Eclipse. Затем я изменил начало кода к

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

и это сработало.

6 ответов


посмотреть здесь.

Ваш URL-адрес совершенно неверен. Должно выглядеть так:

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

вы также не регистрируете класс драйвера. Вы хотите загрузить тонкую банку драйверов, поместить ее в свой путь к классам и сделать свой код похожим на этой.

обновление: "14 "в" ojdbc14.jar " означает JDK 1.4. Вы должны соответствовать версии драйвера с JDK, который вы используете. Держу пари, это означает JDK 5 или 6.


есть два способа настроить это. Если у вас есть SID, используйте этот (более старый) формат:

jdbc:oracle:thin:@[HOST][:PORT]:SID

если у вас есть имя службы Oracle, используйте этот (более новый) формат:

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

источник: эта страница OraFAQ

на вызов getConnection() правильно.

кроме того, как сказал duffymo, убедитесь, что код драйвера присутствуют в том числе ojdbc6.jar в пути к классам, где номер соответствует версии Java, которую вы с помощью.


правильным форматом для 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).


Если вы используете oracle 10g expree Edition, то:
1. для использования класса загрузки DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); 2. для подключения к базе данных использовать Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/password@localhost:1521:xe");


Я не Разработчик Java, поэтому, к сожалению, я не могу прокомментировать ваш код напрямую, однако я нашел это в FAQ Oracle относительно формы строки подключения

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

С Oracle JDBC FAQ

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

надеюсь, что это поможет


DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());         
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");