2012-03-16 45 views
0

我使用cat5交叉以太網電纜連接了兩臺筆記本電腦。兩個都安裝了linux ubuntu。兩臺Linux計算機上的Oracle jdbc連接

Lappi 1: $ ifconfig eth0 192.168.1.16 up 
Lappi 2: $ ifconfig eth0 192.168.1.17 up 

都經由有線以太網連接

ping lappi 1: $ ping 192.168.1.17 
give bytes means working 

ping lappi 2: $ ping 192.168.1.16 
working 

lappi 1具有安裝在其上的Oracle XE10克。

我想從lappi-1的oracle數據庫中使用lappi-2獲取一些行。

這裏是代碼

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class servertest 
{ 
    public void test() throws ClassNotFoundException, SQLException 
    { 
     Class.forName ("oracle.jdbc.driver.OracleDriver"); 
     Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@192.168.1.16:1521:XE","scott","tiger"); 
     Statement stmt = conn.createStatement(); 
     String query = "select email_to from createemail"; 
     ResultSet rset = stmt.executeQuery(query); 

     while(rset.next()) 
     { 
      System.out.println(rset.getString(0)); 
     } 
    } 

    public static void main(String args[]) throws ClassNotFoundException, SQLException 
    { 
     servertest obj = new servertest(); 
     obj.test(); 
    } 
} 

它不給我任何錯誤。但它也不會檢索任何行。有時我會收到錯誤「連接無法建立」...(偶爾)]

回答

1

我在代碼中看不到任何問題。也許它不返回行,因爲沒有。並且它可能會返回連接錯誤,因爲鏈接真的很差(可能是電纜損壞了......)。

Java有非常好的錯誤報告,請仔細閱讀該消息。如果它報告它無法連接,請99%確定它是網絡問題。如果沒有行,請仔細檢查您是否選擇了正確的表格等。

請遵循Java命名約定:類名以大寫字母開頭。

0

它不會給我任何錯誤..但不檢索行。有時給 連接無法建立錯誤...(偶爾)]

有時候?檢查您的網絡連接並確保它具有低延遲。同時確保防火牆和端口已打開,併爲這兩臺計算機正確設置。邏輯上當表格爲空時,ResultSet返回空。所以你應該檢查你的表是否有數據。

而不是拋出異常,爲什麼不嘗試捕捉每個特定的異常?我的觀點是,通過捕捉每一個可能的特定例外,你確切地知道什麼是錯的。在目前的情況下,這種策略很好。如果是ClassNotFoundException異常,請打印一條有用的消息。如果是IOException,則打印有用的消息。

0

這個問題是很老,但neverethless那就是:

一個問題,我看到的代碼,並應拋出SQLException: 當你獲取數據,你越來越柱0(rset.getString(0 )) 在JDBC列&字段索引從1開始,而不是0!

相關問題