DButils工具类库的使用
来源:互联网 发布:淘宝申请全球购的条件 编辑:程序博客网 时间:2024/06/10 09:17
最近在做课程要求做的java web应用,经队友XM的介绍,开始接触DButils这个工具类库,没接触这个之前觉得牵扯到数据库的一句一句的写也没那么麻烦,但用过这之后真心感觉,之前我干嘛那么累自己,所有工作一切搞定。下面是我在写的过程中经常用到的一些方法,留着自己哪天忘了回忆一下。
关于Commons-DButils
Commons-DButils是Apache组织提供的一个开源的JDBC工具类库,它对JDBC进行了简单的封装,学习起来很简单, 而且大大的简化了工作量,关于数据库的操作一般一两句就可以解决问题了,并且不会影响程序的性能。
其API:
- org.apache.commons.dbutils.QueryRunner
- org.apache.commons.dbutils.ResultSetHandler
工具类:
- org.apache.commons.dbutils.DbUtils
QueryRunner类使用
其主要功能用来做数据库的查询(select、update、delete、insert),简化了查询的操作
- query执行select操作
- update执行update、insert、delete操作操作
QueryRuner类的主要方法
- public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:
- 执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。
- public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException
- 几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection。
- public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException
- 执行一个不需要置换参数的查询操作。
- public int update(Connection conn, String sql, Object[] params) throws SQLException
- 用来执行一个更新(插入、更新或删除)操作。
- public int update(Connection conn, String sql) throws SQLException
- 用来执行一个不需要置换参数的更新操作。
ResultSetHandler接口使用
这个的使用主要是比如我select*了,返回的是一大堆数据对吧,要放在List中,它就是用来解决这个问题的。
ResultSetHandler接口的实现类
- ArrayHandler:把结果集中的第一行数据转成对象数组。
- ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
- BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
- BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
- ColumnListHandler:将结果集中某一列的数据存放到List中。
- KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
- MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
- MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
实现举例
是一些自己正在做的东西的例子,以投诉为例
投诉dao
package com.book.buy.dao;import com.book.buy.vo.ComplainVo;import java.sql.SQLException;import java.util.List;/** * Created by violet on 15/10/27. */public interface ComplainDao{ public void addComp(ComplainVo comp) throws SQLException; public List<ComplainVo> getAllComp() throws SQLException; public List<ComplainVo> getCompByUserid(int uid) throws SQLException; public List<ComplainVo> getCompByState(int state) throws SQLException; public void close();}
Imp
package com.book.buy.daoImp;import com.book.buy.dao.ComplainDao;import com.book.buy.utils.DBUtils;import com.book.buy.vo.ComplainVo;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.Connection;import java.sql.SQLException;import java.util.List;/** * Created by violet on 2015/10/28. */public class ComplainImp implements ComplainDao { private QueryRunner runner = null; private Connection conn = null; public ComplainImp(){ runner = new QueryRunner(); conn = DBUtils.getConnection(); } @Override public void addComp(ComplainVo comp) throws SQLException { String sql = "insert into complain(userID, description) values(?, ?)"; runner.update(conn, sql, comp.getUserid(), comp.getDescription()); } @Override public List<ComplainVo> getAllComp() throws SQLException { String sql = "select userID, description, state from complain"; return runner.query(conn, sql, new BeanListHandler<ComplainVo>(ComplainVo.class)); } @Override public List<ComplainVo> getCompByUserid(int uid) throws SQLException { String sql = "select userID, description, state from complain where userID = ?"; return runner.query(conn, sql, new BeanListHandler<ComplainVo>(ComplainVo.class), uid); } @Override public List<ComplainVo> getCompByState(int state) throws SQLException { String sql = "select userID, description, state from complain where state = ?"; return runner.query(conn, sql, new BeanListHandler<ComplainVo>(ComplainVo.class), state); } @Override public void close() { try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } }}
这有一篇介绍DButils特别详细的博客,留着看
javaweb学习总结(四十一)——Apache的DBUtils框架学习
1 0
- DButils工具类库的使用
- DbUtils工具的使用
- dbUtils工具的使用
- DBUtils工具的使用
- JDBC : 使用DBUtils 工具类
- 关于Apache Commons DbUtils工具类的使用记录
- JDBC相关(三):DButils工具类的使用详解
- Dbutils工具基本使用
- commons-dbutils 工具使用
- DBUtils工具类库的QueryRunner类 、ResultSetHandler接口
- 基于DBUtils的数据库工具类实现
- 测试 DBUtils 工具类
- JDBC-DBUtils工具类
- DBUtils工具类
- DBUtils数据库工具类
- dbutils工具类:QueryRunner
- 使用DBUtils第三方工具类,实现MySQL数据库的增删改查
- J2EE进阶之JDBC工具类DbUtils使用 二十
- KD树 (k-Dimension tree)
- hadoop自定义排序
- 06-图3 六度空间
- 网络访问之json数据解析
- Spring Web mvc Maven实现文件上传
- DButils工具类库的使用
- js encodeURIComponent()和encodeURI()区别
- Spring学习4--登录示例
- 算数-偶数和基数
- Spinner使用自定义适配器
- iOS NsSession http请求错误
- 通信协议制定
- 跟我一起玩WPF-绑定控件
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(一)