2012-03-16 3 views
0

Я подключил свои два ноутбука, используя кабель Ethernet для кабеля cat5. Оба имеют linux ubuntu.Соединение с Oracle jdbc на двух компьютерах Linux

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 имеет оракул х е 10g, установленные на нем.

Я хочу получить некоторые строки, используя lappi-2 из базы данных оракула в lappi-1.

Вот код

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

это не дает мне никакой ошибки .. но не извлекает строки. Иногда дают подключение не удалось установить ошибка ... (иногда)]

Иногда? Проверьте сетевое соединение и убедитесь, что он имеет низкую задержку. Также убедитесь, что брандмауэр и порт открыты и настроены правильно для этих двух компьютеров. Логически, когда таблица пуста, ResultSet10 пустой. Поэтому вы должны действительно проверить, есть ли в вашей таблице данные.

Вместо того чтобы исключать исключения, почему бы не попробовать и не уловить все конкретные исключения? Я хочу сказать, что, поймав все возможные конкретные исключения, вы точно знаете, что не так. Эта стратегия хороша в вашей нынешней ситуации. Если это исключение ClassNotFoundException, распечатайте полезное сообщение. Если это IOException, напечатайте полезное сообщение.

0

Этот вопрос довольно старый, но neverethless здесь:

Одна проблема, которую я вижу в коде и что должен бросить SQLException: когда вы выборки данных вы получаете столбец 0 (rset.getString (0)) в колонке JDBC & индексы полей начинаются с 1, а не 0!

Смежные вопросы