2012-03-16 65 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!

相关问题