Формат строки 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 Referenced Libraries. Затем я изменил начало кода на
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
и он работал.
Ответы
Ответ 1
Посмотрите здесь.
Ваш URL-адрес неверен. Должно выглядеть так:
url="jdbc:oracle:thin:@localhost:1521:orcl"
Вы также не регистрируете класс драйвера. Вы хотите загрузить тонкий драйвер JAR, поместите его в свой CLASSPATH и сделайте код более похожим на this.
UPDATE: "14" в "ojdbc14.jar" означает JDK 1.4. Вы должны соответствовать версии вашего драйвера с запущенным JDK. Я уверен, что это означает JDK 5 или 6.
Ответ 2
Есть два способа установить это. Если у вас есть SID, используйте этот (более старый) формат:
jdbc:oracle:thin:@[HOST][:PORT]:SID
Если у вас есть имя службы Oracle, используйте этот (более новый) формат:
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
Источник: эта страница OraFAQ
Вызов getConnection()
верен.
Кроме того, как сказал duffymo, убедитесь, что присутствует фактический код драйвера, включив ojdbc6.jar
в путь к классам, где номер соответствует используемой версии Java.
Ответ 3
Правильный формат 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 (имя базы данных) должен быть таким же, как тот, который находится в переменных среды (если вы используете окна).
Ответ 4
если вы используете oracle 10g expire Edition, а затем:
1. для загрузки класса использования DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
2. для подключения к использованию базы данных Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/[email protected]:1521:xe");
Ответ 5
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");
Ответ 6
Я не 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
надеюсь, это поможет
Ответ 7
String host = <host name>
String port = <port>
String service = <service name>
String dbName = <db schema>+"."+service
String url = "jdbc:oracle:thin:@"+host+":"+"port"+"/"+dbName