2012-04-13 4 views
0

Итак, я использовал JDBC с mySQL для подключения к тестовой базе mySQL в приложении Java, и все сработало отлично. Производство закончится в базе данных оракула. Кажется, я могу просто изменить драйвер и подключение, чтобы сделать эту работу.Соединение с Oracle с JDBC

Я получил это: /usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S пользователь/пароль @ сервис @ something.sql

Таким образом, я предполагаю, что это то, как это осуществляется локально. Мне тоже дали хозяина. Так я думал, что соединение URL будет переводить к следующему, и я был бы в состоянии сделать это:

String url = "jdbc:oracle:thin:user/[email protected]//host/SERVICE"

Connection c = DriverManager.getConnection(url);

, но это, кажется, не работает. Меня смущает часть @ something.sql. Как включить в мой URL-адрес ссылку? Также есть очевидные ошибки в моем текущем URL-адресе подключения: «jdbc: oracle: thin: user/password @ // host/SERVICE»?

+1

проверить этот пост - http://stackoverflow.com/questions/4832056/java-jdbc-how-to-connect-to-oracle-using-service-name-вместо-sid – mazaneicha

+0

Я получил его, используя jdbc: oracle: thin: @host: 1521: синтаксис SERVICE и предоставление имя пользователя и пароль отдельно. Спасибо. –

ответ

1

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

Если у вас был пользователь с именем «ababa», у которого был пароль «кунжут». Предположим, что услуга «джинна» на сервере «бутылка». Если SQL-сервер запускался из командной строки, это был «SELECT * FROM желает LIMIT 3», который находится в файле с именем «/tmp/wishes.sql».

из командной строки, можно ввести следующее:

/usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S ababa/[email protected] @/tmp/wishes.sql 

От Java, можно было бы назвать:

Connection conn = DriverManager.getConnection("jdbc:oracle:thin://bottle/genie", 
               "ababa", 
               "sesame"); 
0

Я обычно не использую строки подключения непосредственно в своем коде, но это выглядит в основном правильно. Реальная проблема заключается в том, что Oracle не является стандартным, поэтому у вас есть глупый знак @.

Вы также можете обнаружить, что некоторые из ваших SQL не будут работать. Это потому, что у Oracle есть некоторые причуды. Вы действительно должны проверить свой код на базе данных оракула, прежде чем бросать его в производство.

+2

Нет такой вещи, как «стандартный» JDBC-URL. Это ** является спецификатором поставщика (по определению). И кстати: у MySQL гораздо больше причуд, чем у Oracle (что позволяет хранить 31 февраля всего лишь один из них) –

+0

О, я проверяю его до производства, конечно. Какова ваша альтернатива использованию строки подключения непосредственно в коде? –

+0

Springs JDBC материал. Apache dbUtils. Там есть несколько других, которые будут абстрагировать беспорядок JDBC для вас. –

Смежные вопросы