データベースからArrayList<String>
を返すWebサービスがあります。私はArrayList
でクライアントJavaアプリケーションのjTable
を設定する必要があります。 ArrayList
はどうすれば整理できますか?表の正しい行に表示されますか?現在はすべての要素をカンマで区切って返します。ここで新しいクラスを作成せずに、ArrayList <String>からjTableを生成します。
は、WebMethod属性のビットは次のとおりです。
@WebMethod(operationName = "ListCustomers")
public ArrayList ListCustomers() {
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/BankDB", "bankadmin", "bankadmin");
Statement st = con.createStatement();
PreparedStatement prst = con.prepareStatement("select Name, AccountNumber from CUSTOMERS");
ArrayList<String> list = new ArrayList<>();
ResultSet rs = prst.executeQuery();
while(rs.next()){
String nm = rs.getString("Name");
String an = rs.getString("AccountNumber").toString();
list.add(new String (nm));
list.add(new String (an));
}
return (ArrayList) list;
}
catch(SQLException ex){
System.err.println(ex.getMessage());
return null;
}
catch (ClassNotFoundException ex) {
Logger.getLogger(BankServerService.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("second");
return null;
}
finally{
if(st != null){
try {
st.close();
}
catch(SQLException ex){
System.out.println("Could not close statement");
}
}
}
}
これが返されます。
[TestName1, 46484654897, Name2, 646543543, emp3, 534354354]
クライアント・ノードが、私は別の方法で実行され、次のようになります。
listCustomers();
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
Object rowData[] = new Object[listCustomers().size()];
for (int i=0; i<listCustomers().size(); i++){
rowData[i] = listCustomers().get(i);
model.addRow(rowData);
}
これを移入TestName1, 46484654897,
のみが10行になります。
TestName1, Name2, emp3,
を表の第1列の別々の行に表示し、第2列の別の行に46484654897, 646543543, 534354354
と表示する必要があります。
明確にする:1行に1つの名前とアカウント番号を持つテーブルを作成しようとしていますか? testname1、46484654897、name2、646543543、2行目など? –
正しいです、それが目標です。 –