데이터베이스에서 ArrayList<String>
을 반환하는 웹 서비스가 있습니다. 클라이언트 파일에 jTable
을 채우고 ArrayList
으로 채워야합니다. ArrayList
을 어떻게 구성하면 테이블의 올바른 행에 표시됩니까? 현재 모든 요소를 쉼표로 구분하여 반환합니다.새 클래스를 만들지 않고 ArrayList <String>에서 jTable을 채 웁니다.
@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");
}
}
}
}
이 반환 : 여기
는에 WebMethod 비트입니다[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,
을 표시하고 두 번째 열에 별도의 행에 46484654897, 646543543, 534354354
을 표시해야합니다.
명확히하기 : 행당 하나씩 이름과 계좌 번호가있는 테이블을 만들려고합니까? 그래서 : testname1, 첫 번째 행에 46484654897, name2, 두 번째 행에 646543543 등? –
맞습니다. 이것이 목표입니다. –