ResultSet基础在Statement详解后一部分
【ResultSet案例】
我们已经从上述代码中获取了数据库中的数据,每一行就是一个java对象,形成很多个java对象。在实际应用中,我们希望以一个表的形式来展现,就需要对这些java对象进一步处理,放到一个容器内,而集合就是一个专门装对象的容器,然后把这个容器给页面,页面就可以展示这些数据。
需求:查询account账户表数据,封装为Account对象中,并存储到ArrayList集合中。
第一步:定义实体类Account
新建一个包pojo(这个名称一般代表存放一些实体类)
1、成员变量的名称要与数据库里字段的名称和类型一样。
2、提供setter和getter方法,快捷键alt+insert。
3、为了方便查看,使用toString()方法,同样alt+insert
public class Account {
//成员变量的名称要与数据库里字段的名称和类型一样
private int id;
private String name;
private double money;
//提供setter和getter方法,快捷键alt+insert
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
//为了方便查看,使用toString()方法,同样alt+insert
@Override
public String toString() {
return "Account{" +
"id=" + id +
", name='" + name + '\'' +
", money=" + money +
'}';
}
}
第二步:创建对象,并将获取的数据封装到对象中
使用@Test代替主函数去运行测试
//6、处理结果,遍历rs中的数据
//6.1光标向下移动一行,并判断当前行是否有数据
while(rs.next()){
//创建对象
Account account = new Account();
//6.2 获取数据 getXxx()
int id = rs.getInt("id");
String name = rs.getString("name");
double money = rs.getDouble("money");
//将获取的数据赋值给对象
account.setId(id);
account.setName(name);
account.setMoney(money);
}
第三步:把对象存到集合内
如果在while循环里创建集合,那么每一次循环都会有一个新的集合,我们只需要将所有对象存到一个集合内,所以创建集合应在while循环体外。
//创建集合
List<Account> list = new ArrayList<>();
//6、处理结果,遍历rs中的数据
//6.1光标向下移动一行,并判断当前行是否有数据
while(rs.next()){
//创建对象
Account account = new Account();
//6.2 获取数据 getXxx()
int id = rs.getInt("id");
String name = rs.getString("name");
double money = rs.getDouble("money");
//将获取的数据赋值给对象
account.setId(id);
account.setName(name);
account.setMoney(money);
//存入集合
list.add(account);
}
System.out.println(list);