arraydata 使用 RMI 到 jtable
arraydata to jtable using RMI
//我有return列表的方法pulic list,我想将数据显示到jtable中,怎么办?
从数据库中检索数据的方法
public List<mahasiswa> SelectMahasiswa() throws RemoteException {
List <mahasiswa>listMahasiswa = new ArrayList<mahasiswa>();
try {
PreparedStatement ps = con.prepareStatement("SELECT nim, nama, jurusan FROM mahasiswa");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
mahasiswa mhs = new mahasiswa();
mhs.setNim(rs.getString(1));
mhs.setNama(rs.getString(2));
mhs.setJurusan(rs.getString(3));
listMahasiswa.add(mhs);
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
return listMahasiswa;
}
显示数据到JTable
public void getAll(){
try {
Registry regis = LocateRegistry.getRegistry("localhost", koneksi.Port_id );
remot rem = (remot) regis.lookup(koneksi.id);
DefaultTableModel model=new DefaultTableModel();
for(mahasiswa mhs:rem.SelectMahasiswa()){
String kolom1=mhs.getNim();
String kolom2=mhs.getNama();
String kolom3=mhs.getJurusan();
String kolom[]={kolom1,kolom2,kolom3};
model.addRow(kolom);
}
jTable1.setModel(model);
} catch (Exception ex) {
ex.printStackTrace();
}
}
错误信息
java.rmi.UnmarshalException: error unmarshalling return; nested
exception is: java.io.WriteAbortedException: writing aborted;
java.io.NotSerializableException: remot.mahasiswa at
sun.rmi.server.UnicastRef.invoke(UnicastRef.java:193) at
java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194)
at
java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
at com.sun.proxy.$Proxy0.SelectMahasiswa(Unknown Source) at
klaiyen.CRUD2.getAll(CRUD2.java:218) at
klaiyen.CRUD2.(CRUD2.java:30) at
klaiyen.CRUD2.run(CRUD2.java:263)
您的 class mahasiswa
应如下所示:
class mahasiswa implements Serializable {
...
}
//我有return列表的方法pulic list,我想将数据显示到jtable中,怎么办?
从数据库中检索数据的方法
public List<mahasiswa> SelectMahasiswa() throws RemoteException {
List <mahasiswa>listMahasiswa = new ArrayList<mahasiswa>();
try {
PreparedStatement ps = con.prepareStatement("SELECT nim, nama, jurusan FROM mahasiswa");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
mahasiswa mhs = new mahasiswa();
mhs.setNim(rs.getString(1));
mhs.setNama(rs.getString(2));
mhs.setJurusan(rs.getString(3));
listMahasiswa.add(mhs);
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
return listMahasiswa;
}
显示数据到JTable
public void getAll(){
try {
Registry regis = LocateRegistry.getRegistry("localhost", koneksi.Port_id );
remot rem = (remot) regis.lookup(koneksi.id);
DefaultTableModel model=new DefaultTableModel();
for(mahasiswa mhs:rem.SelectMahasiswa()){
String kolom1=mhs.getNim();
String kolom2=mhs.getNama();
String kolom3=mhs.getJurusan();
String kolom[]={kolom1,kolom2,kolom3};
model.addRow(kolom);
}
jTable1.setModel(model);
} catch (Exception ex) {
ex.printStackTrace();
}
}
错误信息
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: remot.mahasiswa at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:193) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy0.SelectMahasiswa(Unknown Source) at klaiyen.CRUD2.getAll(CRUD2.java:218) at klaiyen.CRUD2.(CRUD2.java:30) at klaiyen.CRUD2.run(CRUD2.java:263)
您的 class mahasiswa
应如下所示:
class mahasiswa implements Serializable {
...
}