2012-03-16 8 views
0

cat5クロスイーサネットケーブルを使用して2台のラップトップを接続しました。どちらもLinuxのubuntuがインストールされています。2台の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 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(); 
    } 
} 

です。行を検索することもありません。時には "接続が確立できませんでした"というエラーが表示される...

答えて

1

私はコードに何も問題はありません。たぶんそれは何もないので行を返さないでしょう。リンクが本当にダウンしているので(おそらくケーブルが破損している可能性があります...)、おそらく接続エラーを返します。

Javaはエラー報告機能が非常に優れています。メッセージを注意深く読んでください。接続できないと報告した場合は、99%がネットワークの問題であることを確認してください。行がない場合は、正しい表などを選択していることを再度確認してください。

Java命名規則に従ってください。クラス名は大文字で始まります。

0

エラーは発生しませんが、行は取得されません。場合によっては 接続が確立できませんでした...(時々)]

時には?ネットワーク接続を確認し、待ち時間が少ないことを確認してください。また、ファイアウォールとポートが開いていて、これらの2台のコンピュータに対して正しく設定されていることを確認してください論理的にテーブルが空の場合、ResultSetは空に戻ります。したがって、テーブルにデータがあるかどうかを実際に確認する必要があります。

例外をスローするのではなく、例外のすべてを特定して捕まえないでください。私の指摘は、すべての可能な特定の例外をキャッチすることによって、何が間違っているかを正確に知ることです。その戦略はあなたの現在の状況に良いです。 ClassNotFoundException例外の場合は、有用なメッセージを出力してください。 IOExceptionの場合は、便利なメッセージを印刷してください。

0

この質問はかなり古いですが、neverethlessここにある:私はコードで参照しているが、SQLExceptionをスローする必要があり

一つの問題: あなたがデータをフェッチしているときに、列0(rset.getString(0を取得しています)) JDBC列&フィールドインデックスは1から始まり、0ではありません!

関連する問題