JDBC与DBUtils的区别
来源:互联网 发布:移动4g网络差怎么办 编辑:程序博客网 时间:2024/05/23 02:00
说明:编译环境Eclipse(java)+MySql
使用JDBC查询数据库最不方便的一个地方在于,JDBC的executeQuey方法得到的是结果是一个结果集(ResultSet),实际应用时,需要用遍历的方法把一个个对象从ResultSet中取出来
<pre name="code" class="html">//rs为ResultSet对象rs = stmt.executeQuery();//将Result转换成List<Object[]>int colCount = rs.getMetaData().getColumnCount();//得到查出的列的数量while(rs.next()){Object[] oArr = new Object[colCount];//对应数据表中的一行,然后每一列都对应数组中的一个元素for (int i = 0; i < oArr.length; i++) {<span style="white-space:pre"></span>oArr[i] = rs.getObject(i+1);}<span style="white-space:pre"></span>list.add(oArr);//把取得的对象放入list中}
对于自定义的类,还要进行类型转换,这时,可利用RowMapper接口
public class UserRowMapper implements RowMapper<User> {@Overridepublic Caller getEntity(ResultSet rs) throws SQLException {User user=new User()user.setId(rs.getInt("C_ID"));user.setCno(rs.getString("C_NO"));user.setCname(rs.getString("C_NAME"));user.setPassword(rs.getString("C_PASSWORD"));return user;}}
while(rs.next()){User user= rm.getEntity(User);//RowMapper<User>rm=new UserRowMapper();<span style="white-space: pre;"></span>list.add(user);//把取得的对象放入list中}
但是,每个类都需要一个与之对应的rowMapper,自定义的类比较多时也是很累的……
DBUtils就可以解决这个问题,只需要定义
ResultSetHandler<List<Person>> h = new BeanListHandler<Person>(Person.class);执行的时候传进去就可以了,方便很多!!
List<Person> persons = run.query("SELECT * FROM Person", h);
但是,使用过程中却发现一个问题。
使用DBUtils时,类中的属性名和数据库中的表中的字段名必须一致,否则查询出来的数据和类中属性无法对应!!
0 0
- JDBC与DBUtils的区别
- mysql数据库中JDBC与DBUtils的笔记和总结
- JDBC:Apache DBUtils的使用
- 模仿dbutils的jdbc框架
- jdbc优化-DButils的使用
- 学习笔记:dbutils与Spring JdbcTemple的区别
- JDBC框架入门及DBUtils的入门
- Apache DbUtils - JDBC轻量级封装的工具包
- jdbc中dbutils的类别使用
- 理解dbutils对jdbc的封装
- JDBC连接和DBUtils的使用详解
- jdbc 升级之dbutils 的特点
- JDBC与JNDI的区别
- Hibernate与JDBC的区别
- hibernate与jdbc的区别
- JDBC 与ODBC的区别
- JDBC与JNDI的区别
- JDBC与JNDI的区别
- 攻下隔壁女生路由器后,我都做了些什么
- Implement Queue using Stacks
- 史蒂夫-乔布斯十大励志名言
- hdu 5023 线段树
- MyEclipse中的页面字体设置
- JDBC与DBUtils的区别
- JAVA web容器
- U3D UGUI学习3 - Text
- javascript 计算两个日期间差的天数
- Python教程
- iOS appdelegate几个方法介绍
- 使用squid做出口防火墙
- iOS激情详解之异步请求图片加载
- html 的描点链接