2016-01-20 97 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

你做了正確的方法。根據錯誤,它應該是Oracle數據庫的錯誤url。嘗試使用該URL和憑證手動連接到數據庫。 –

+0

可能是連接字符串的問題。請再次檢查一次。 –

+0

嘗試此連接字符串格式:'jdbc:oracle:thin:@ // HOSTNAME:PORT/SERVICENAME' - '「jdbc:oracle:thin:@ // 97.253.16.117:1521/NATTDB11」' – D0dger

回答

1

嘗試使用直接註冊兩個驅動程序:

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

然後測試這兩種連接類型。

相關問題