Reading Data From Database and storing in Array List object
You have to create a new customer object in every iteration and then add that newly created object into the ArrayList at the lase of your iteration.
Try with the following code
public static ArrayList<Customer> getAllCustomer() throws ClassNotFoundException, SQLException {
Connection conn=DBConnection.getDBConnection().getConnection();
Statement stm;
stm = conn.createStatement();
String sql = "Select * From Customer";
ResultSet rst;
rst = stm.executeQuery(sql);
ArrayList<Customer> customerList = new ArrayList<>();
while (rst.next()) {
Customer customer = new Customer(rst.getString("id"), rst.getString("name"), rst.getString("address"), rst.getDouble("salary"));
customerList.add(customer);
}
return customerList;
}
this is my model class
public class Customer {
private String id;
private String name;
private String salary;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
this is my view method
private void reloadButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
ArrayList<Customer> customerList = null;
try {
try {
customerList = CustomerController.getAllCustomer();
} catch (SQLException ex) {
Logger.getLogger(veiwCustomerFrame.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (Exception ex) {
Logger.getLogger(ViewCustomerForm.class.getName()).log(Level.SEVERE, null, ex);
}
DefaultTableModel tableModel = (DefaultTableModel) customerTable.getModel();
tableModel.setRowCount(0);
for (Customer customer : customerList) {
Object rowData[] = {customer.getId(), customer.getName(), customer.getAddress(), customer.getSalary()};
tableModel.addRow(rowData);
}
} catch (Exception ex) {
Logger.getLogger(ViewCustomerForm.class.getName()).log(Level.SEVERE, null, ex);
}
}