JDBC支持可滚动结果集,它与普通的结果集相比允许我们队结果集的数据进行随意访问
而不是只能遍历一次,但是却不常用
原因在于,结果集在数据库端,ResultSet只不过是通过网络操作数据库端的结果集
所以频繁对结果集进行操作会增加网络访问降低效率。
为此,我们只遍历一次结果集,将数据以Java对象的形式存于本地内存,这样遍历结果集的
效率会高很多,而且是以面向对象的思想去遍历数据,更符合Java程序员的习惯。
代码:思路是应用面向对象的方式将数据库中表的数据取出来放在本地的内存中,这样我们就可以随意遍历得到的结果集,相比ResultSet频繁的访问数据库的效率要高的多。
public static List<UserInfo>findAll(){
//创建一个类型为UserInfo类型的集合list
List<UserInfo>list=new ArrayList<UserInfo>();
try {
//建立连接
Connection conn=DBUtil.getConnection();
//创建执行SQL的对象
Statement state=conn.createStatement();
//创建一个SQL语句
String sql="SELECT id,username,password,email,account" +
" FROM zc_userinfo";
//返回查询的结果集
ResultSet rs=state.executeQuery(sql);
//对结果集进行操作
while(rs.next()){
int id=rs.getInt("id");
String username=rs.getString("username");
String password=rs.getString("password");
String email=rs.getString("email");
int account=rs.getInt("account");
//取得数据库中的结果集然后放在一个实例对象userInfo中
UserInfo userInfo=new UserInfo(
id,username,password,email,account
);
//要对这个结果集进行遍历,就是将这个结果集放在一个集合list中就可以很方便的对其遍历了
list.add(userInfo);
}
//关闭这个结果集
rs.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
DBUtil.closeConnetion();
}
return list;
}