Формат строки 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>
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");