私はデータベースの内容をJTableに表示するプログラムを書いていますが、難しい部分はRMIを使うことです。arraylistを渡して少し問題があります。サーバー側に送信し、更新します。私は助けを感謝する、私はほとんど完全な初心者ですので、私は本当に何が間違っているか把握できないことに注意してください、誰かが手伝って喜んでいる場合、これを達成する方法を学ぶことは本当にうれしいです。JAVA RMI arraylistの更新と返りの配列
これは私のインターフェイスの実装です:
public ArrayList passArrayList(ArrayList empjobslist, String tempName) throws RemoteException {
Statement st;
ResultSet rs;
String name = null;
String surname = null;
String finalUserName = null;
String tempFinalUserName = null;
ArrayList<empJobsList> a = new ArrayList<>();
try {
String tempNametemp = tempName;
// converting username into name and lastname to be displayed in
// userLabel
String userQuery = "SELECT NAME, LASTNAME FROM WAITERS WHERE USERNAME = '" + tempNametemp + "'";
st = con.createStatement();
rs = st.executeQuery(userQuery);
while (rs.next()) {
name = rs.getString("NAME");
surname = rs.getString("LASTNAME");
}
finalUserName = name + "" + surname;
tempFinalUserName = finalUserName.toUpperCase();
try {
String displayQuery = "SELECT * FROM " + tempFinalUserName + "";
st = con.createStatement();
rs = st.executeQuery(displayQuery);
empJobsList empjoblist;
while (rs.next()) {
empjoblist = new empJobsList(rs.getString("role"), rs.getString("location"),
rs.getString("neareststation"), rs.getString("hourlyrate"), rs.getString("hours"),
rs.getString("date"));
a.add(empjoblist);
}
System.out.println(empjobslist);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.out.println("something wrong");
}
return a;
}
そして、これは私のクライアントプログラム
public ArrayList<empJobsList> getEmpJobsListList() {
ArrayList<empJobsList> empjobslist = new ArrayList<>();
String tempName = uNameLbl.getText();
WaitersInterface display = null;
try {
Registry registry = LocateRegistry.getRegistry(registryPort);
WaitersInterface wii = (WaitersInterface) registry.lookup(registryName);
System.out.println("Connected succesfully");
try {
System.out.println();
wii.passArrayList(empjobslist, tempName);
System.out.println("List after" + empjobslist);
} catch (Exception ex) {
}
} catch (Exception es) {
}
return empjobslist;
}
public void display_jobs() {
ArrayList<empJobsList> a = getEmpJobsListList();
DefaultTableModel model = (DefaultTableModel) empJobTable.getModel();
Object[] row = new Object[6];
for (int i = 0; i < a.size(); i++) {
row[0] = a.get(i).getrole();
row[1] = a.get(i).getlocation();
row[2] = a.get(i).getneareststation();
row[3] = a.get(i).gethourlyrate();
row[4] = a.get(i).gethours();
row[5] = a.get(i).getdate();
model.addRow(row);
}
}
であり、これは
public class JobsList {
private String role, location, neareststation, hourlyrate, hours, date;
public JobsList(String role, String location, String neareststation, String hourlyrate, String hours,
String date) {
this.role = role;
this.location = location;
this.neareststation = neareststation;
this.hourlyrate = hourlyrate;
this.hours = hours;
this.date = date;
}
public String getrole() {
return role;
}
public String getlocation() {
return location;
}
public String getneareststation() {
return neareststation;
}
public String gethourlyrate() {
return hourlyrate;
}
public String gethours() {
return hours;
}
public String getdate() {
return date;
}
}
OUTPUT私JobsListクラスです:
List after[]
Connected succesfully
本当にユーザー名ごとに表がありますか?おそらくそうは思われませんが、それは2番目のSELECTステートメントが必要とするものです。例外をキャッチするときは、「何かが間違っている」のような馬鹿馬鹿しいメッセージを印刷しないでください。プリントアウト*何が間違っていたかは例外で* * – EJP
はい、私は顧客ごとにテーブルを持っていますが、それは愚かなように見えますが、おそらくそれは私が始めただけです。 – Quba
テーブル内にデータがあります。 – Quba