-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 return rsは解決策が得られるまでです。メソッドがString型である間に、私は実際にオブジェクトを返そうとしていません。 – Wagari
何を言っているのですか?あなたのタイトルは、 'ResultSet' *をリモートメソッドに渡すと言っていますが、あなたの質問はリモートメソッドから*返すと言っていますし、あなたのコードはどちらもしません。 – EJP