数据库的数据取得后的二次封装
2013-06-30 14:58
190 查看
//? 为什么要返回ArrayList ,而不是我们想到ResultSet
//1. ArrayList 中封装 User对象,更加符合面向对象的编程方式 OOP
//2.我们通过 Resulst->User对象->ArrayList这样ArrayList和
Resultset没有关系,就可以及时关闭数据库资源.
下面为二次封装的例子:
UserService中的分页函数————进一步进行二次封装,把散开的单纯Object,整理成为User对象:
//二次封装把ArrayList(object)->User对象 -> ArrayList(集合)(User)
ArrayListal=SQLHelper.executeQueryAL(sql, null);
try {
for(inti=0;i<al.size();i++){
Object[]obj=(Object[]) al.get(i);
//User对象如果放在外,al最终只有一个对象,而且是最后赋值的那个
//在内,每次都创立一个新的加入ArrayList中
//hibernate中有自动的方法进行二次封装
Useruser=new User();
user.setId((Integer)obj[0]);
user.setName((String)obj[1]);
user.setEmail((String)obj[2]);
user.setGrade((Integer)obj[3]);
user.setPwd((String)obj[4]);
//千万别忘记 u-> ArrayList
alUser.add(user);
}
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return alUser;
因为在executeQueryAL中,返回的ArrayList包含的是普通的object
ResultSetMetaDatarsmd = rs.getMetaData();
//得到查询语句有几列(几项)
intnumberOfColumns=rsmd.getColumnCount();
while (rs.next()) {
Object[] ob=
newObject[numberOfColumns];
for(inti=1;i<=numberOfColumns;i++){
//此处i不能为0,因为后面getObject(i+1),而上面i<=numberOfColumns
//这样i+1就超过rs的范围了,报错
ob[i-1]=rs.getObject(i);
}
al.add(ob);
}
//1. ArrayList 中封装 User对象,更加符合面向对象的编程方式 OOP
//2.我们通过 Resulst->User对象->ArrayList这样ArrayList和
Resultset没有关系,就可以及时关闭数据库资源.
下面为二次封装的例子:
UserService中的分页函数————进一步进行二次封装,把散开的单纯Object,整理成为User对象:
//二次封装把ArrayList(object)->User对象 -> ArrayList(集合)(User)
ArrayListal=SQLHelper.executeQueryAL(sql, null);
try {
for(inti=0;i<al.size();i++){
Object[]obj=(Object[]) al.get(i);
//User对象如果放在外,al最终只有一个对象,而且是最后赋值的那个
//在内,每次都创立一个新的加入ArrayList中
//hibernate中有自动的方法进行二次封装
Useruser=new User();
user.setId((Integer)obj[0]);
user.setName((String)obj[1]);
user.setEmail((String)obj[2]);
user.setGrade((Integer)obj[3]);
user.setPwd((String)obj[4]);
//千万别忘记 u-> ArrayList
alUser.add(user);
}
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return alUser;
因为在executeQueryAL中,返回的ArrayList包含的是普通的object
ResultSetMetaDatarsmd = rs.getMetaData();
//得到查询语句有几列(几项)
intnumberOfColumns=rsmd.getColumnCount();
while (rs.next()) {
Object[] ob=
newObject[numberOfColumns];
for(inti=1;i<=numberOfColumns;i++){
//此处i不能为0,因为后面getObject(i+1),而上面i<=numberOfColumns
//这样i+1就超过rs的范围了,报错
ob[i-1]=rs.getObject(i);
}
al.add(ob);
}
相关文章推荐
- 运用反射原理的简单工厂模式和运用反射原理从数据库里读出数据直接封装到实体集合里
- aspupload 批量上传图片并存入数据库,取得multipart/form-data的表单数据
- [笔记]流行数据库SQL差异分析之“不从实体表中取得数据”
- web开发 java如何连接数据库并取得数据,实现 增,删,改,查
- 案例(用封装的ajax加载数据库的数据到页面)
- 利用IDC从数据库中取得数据
- C#--Winfrom-UI中封装数据并提交到数据库
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
- 将数据库常用的操作(连接数据库,获得所有数据,获得一条记录,获得一列记录,获得一条索引数组,获得一条关联数组)都给封装到db.class.php里面,谁需要谁继承这个类 注意:提交封装的类文件
- OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据
- 取得数据库中数据 查询条件where使用规则
- PHP从数据库中取得数据并放入数组(PDO)
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
- OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据
- scrapy--将爬取得数据保存到数据库中
- 从数据库取得时间数据
- 利用IDC从数据库中取得数据
- 将数据库的数据循环进行封装
- 关于listitem点击事件根据position取得数据库数据Onresume()更新Adapter后取得数据错误的问题