2016-01-20 3 views
1

Мне нужно подключиться к двум различным базам данных из моего кода. Сначала это база данных Hive, а другая - Oracle. Для этого мне нужно загрузить два разных драйвера для Hive и другое для Oracle. Вот что я сделал:Подключение к двум различным базам данных в одном классе

 Class.forName("org.apache.hive.jdbc.HiveDriver"); 
     System.out.println("Driver Found"); 
     Connection connection = DriverManager.getConnection(
       "jdbc:hive2://10.8.219.36:10000/default", "lab", "lab"); 
     System.out.println("Connection established"); 

     System.out.println("------------------"); 

     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     System.out.println("Driver Found"); 
     Connection connection1 = DriverManager.getConnection(
       "jdbc:oracle:thin:@97.253.16.117:1521:NATTDB11", 
       "CDR_LOADER", "CDR_LOADER"); 
     System.out.println("Connection established"); 

и когда я бегу выше код, это то, что получил сообщение об ошибке:

Driver Found 
Connection established 
------------------ 
Driver Found 
java.lang.IllegalArgumentException: Bad URL format 
at org.apache.hive.jdbc.Utils.parseURL(Utils.java:185) 
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:84) 
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:104) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at Demo.main(Demo.java:17) 

Как это сделать? Заранее спасибо.

+0

вы сделали это правильно. По ошибке это должен быть неправильный url для Oracle DB. Попробуйте подключиться вручную к базе данных, используя этот URL и учетные данные. –

+0

Может возникнуть проблема со строкой подключения. Повторите попытку. –

+0

Попробуйте этот формат строки подключения: 'jdbc: oracle: thin: @ // HOSTNAME: PORT/SERVICENAME' -' "jdbc: oracle: thin: @ // 97.253.16.117:1521/NATTDB11" ' – D0dger

ответ

1

Try явным образом регистрировать оба водителя с помощью:

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); 
DriverManager.registerDriver (new org.apache.hive.jdbc.HiveDriver()); 

Затем проверьте оба типа подключения.

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