我使用cat5交叉以太网电缆连接了我的两台笔记本电脑。两者都安装了linux ubuntu。
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 xe 10g。
我想在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();
}
}
它没有给我任何错误。但它也没有检索任何行。有时我会收到错误“无法建立连接”......(偶尔)]
答案 0 :(得分:1)
我在代码中没有看到任何问题。也许它不会返回行,因为没有任何行。它可能会返回连接错误,因为链接确实已关闭(可能是电缆损坏了......)。
Java有非常好的错误报告,只需仔细阅读邮件即可。如果它报告无法连接,请99%确定是网络问题。如果没有行,请仔细检查您是否选择了正确的表格等。
请遵循Java命名约定:类名以大写字母开头。
答案 1 :(得分:0)
它没有给我任何错误..但不检索行。有时给 连接无法确定错误...(偶尔)]
有时?检查网络连接并确保其延迟较低。还要确保防火墙和端口是打开的,并为这两台计算机正确设置。当表空为逻辑时,ResultSet
返回空。所以你应该检查你的表中是否有数据。
不是抛出异常,为什么不尝试捕获每个特定的异常?我的观点是,通过捕获每个可能的特定异常,您确切地知道出了什么问题。在你目前的情况下,这种策略是好的。如果是ClassNotFoundException
异常,请打印有用的消息。如果是IOException
,则打印有用的消息。
答案 2 :(得分:0)
这个问题已经很老了,但是这里的问题很严重:
我在代码中看到的一个问题应该抛出SQLException: 当您获取数据时,您将获得第0列(rset.getString(0)) 在JDBC专栏文章中字段索引从1开始,而不是0!