Идея состоит в том, чтобы передать запрос удаленному методу, выполнить этот удаленный метод и дать ему возможность отправить результат в метод вызова.Как вернуть объект набора результатов из удаленного метода?
Вот метод вызывающий
btnOK.setOnAction((e)-> {
String query = "SELECT * FROM schoolmanagement.director;";
System.out.println("Calling RMI");
try {
Registry registry = LocateRegistry.getRegistry("localhost");
RMIInterface rmi = (RMIInterface)registry.lookup("remoteObject");
System.out.println(rmi.Query(query));
} catch (RemoteException e2) {
e2.printStackTrace();
} catch (NotBoundException e1) {
e1.printStackTrace();
}
});
А вот удаленный метод
public String Query(String query) throws RemoteException {
try {
Connection mycon = DriverManager.getConnection("jdbc:mysql://localhost:3306/schoolmanagement", "root", "root");
Statement mystatement = mycon.createStatement();
ResultSet rs = mystatement.executeQuery(query);
while(rs.next()){
System.out.println(rs.getString("Name") + " "+ rs.getString("Age"));
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Я знаю, что rs
не сериализации. Как мне обойти это?
Это также не 'String'. Не имеет большого смысла. – EJP
@EJP return rs только до тех пор, пока я не получу решение. На самом деле я не пытаюсь вернуть объект, в то время как метод имеет тип String. – Wagari
Так о чем вы говорите? Ваш заголовок говорит, что передайте 'ResultSet' * * * удаленный метод, ваш вопрос говорит, что он возвращает * с * удаленным методом, а ваш код тоже не делает. – EJP