2016-02-02 3 views
0

Я пытался с трудом подключить JDBC с RMI. В том, что мне нужно получить результат базы данных на экране консоли клиента. Я думал о передаче объекта ResultSet из удаленного метода клиенту. Я не знаю, как это сделать. Помогите!RMI ResultSet объект, проходящий

import java.rmi.*; 
import java.rmi.server.*; 
import java.sql.*; 
import java.io.Serializable; 

public class Infoimp extends UnicastRemoteObject implements Infoint,java.io.Serializable 
{ 
    public Infoimp() throws RemoteException{ 
    } 
    public ResultSet result() throws RemoteException 
    { 
     try{ 
       final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
       final String DB_URL = "jdbc:mysql://localhost:3306/STUDENTS"; 
       final String USER = "root"; 
       final String PASS = ""; 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); 
       String sql = "INSERT INTO INFO VALUES (1011,'GEET','IT',8735007)"; 
       Statement stmt = conn.createStatement(); 
       boolean x=stmt.execute(sql); 

       sql="SELECT * FROM INFO"; 
       ResultSet rs = stmt.executeQuery(sql); 

       return(rs); 
     }catch(Exception se){ 
      se.printStackTrace(); 

      ResultSet rs=null; 
      return(rs); 
     } 
    } 
} 
+2

Вам нужно сериализовать Ряды самостоятельно. Ваш 'ResultSet' не является Remotable. –

ответ

0

Вы не можете пройти Resultset, который не является Serializable. Получите значения из Resultset в простой java-объект, который равен Serializable и передает этот объект. ОКТЯБРЬ documentation.

Если вам нужен пример кода для достижения этой цели, взглянуть на SE вопрос:

How to pass object in arguments in RMI method?