-1
這個想法是將查詢傳遞給遠程方法,讓該遠程方法執行它並讓結果集返回調用方法。如何從遠程方法返回結果集對象?
這裏是主叫方法
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返回rs直到我得到一個解決方案。我實際上並沒有嘗試在方法類型爲String的情況下返回對象。 – Wagari
那麼你在說什麼?你的標題說'通過'ResultSet' * *遠程方法,你的問題說從遠程方法返回*,你的代碼也不會做。 – EJP