gpt4 book ai didi

java - 从数据库中读取数据并存储在 Array List 对象中

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:52:12 24 4
gpt4 key购买 nike

你好,我想在 html 页面上显示我的数据库表的全部内容。我试图先从数据库中获取记录并存储在 ArrayList 中,但是当我在 html 页面上返回数组列表时,它显示只有最后一条记录重复作为我的数据库表的计数。这是下面的代码:

public ArrayList<CustomerDTO> getAllCustomers() 
{
ArrayList<CustomerDTO> customers = new ArrayList<CustomerDTO>();
CustomerDTO customer = null;
Connection c;
try {
c = openConnection();
Statement statement = c.createStatement();
String s = "SELECT * FROM customer";

ResultSet rs = statement.executeQuery(s);
int g =0;

while (rs.next()) {

customer.setId(rs.getInt("id"));
customer.setName(rs.getString("name"));

customer.setAddress(rs.getString("address"));
customer.setPhone(rs.getString("phone"));
customer.setEmail(rs.getString("email"));
customer.setBountPoints(rs.getInt("bonuspoint"));
customer.setTotalsale(rs.getInt("totalsale"));

customers.add(customer);
}

rs.close();
} catch (Exception e) {
System.out.println(e);
}

return customers;
}

最佳答案

试试下面的代码

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;
}

这是我的模型类

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;
}
}

这是我的 View 方法

  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);
}

}

关于java - 从数据库中读取数据并存储在 Array List 对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com