对于Apache dbutils有两个主要的类/接口,分别是QueryRunner和ResultSetHandler,下面是解释:

上代码

package net.xdclass.forum.dao;import net.xdclass.forum.domain.Category;
import net.xdclass.forum.util.DataSourceUtil;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;/*** @author jiangjw* @version 1.0.1* @date 2022/3/10 15:57* @use:*/
public class CategoryDao {private QueryRunner queryRunner=new QueryRunner(DataSourceUtil.getDataSource());//开启驼峰映射private BeanProcessor beanProcessor=new GenerousBeanProcessor();private RowProcessor processor=new BasicRowProcessor(beanProcessor);/*** 根据id找分类* @param id* @return*/private Category findById(int id){String sql="select * from category where id=?";Category category=null;try {category=queryRunner.query(sql,new BeanHandler<>(Category.class,processor),id);} catch (SQLException throwables) {throwables.printStackTrace();}return category;}/*** 返回分类列表*/private List<Category> list(){String sql="select * from category where id=?";List<Category> list=null;try {list=queryRunner.query(sql,new BeanListHandler<>(Category.class,processor));} catch (SQLException throwables) {throwables.printStackTrace();}return list;}}

首先解释下面这行

category=queryRunner.query(sql,new BeanHandler<>(Category.class,processor),id);

这里query的几个参数逐一解释:sql是数据库语法,new BeanHandler<>()是ResultSetHandler下的一个方法,上文有,他的两个参数:Category.class是映射到要返回结果的类,processor是驼峰映射,这里要设置驼峰,因为query将数据库的结果逐一返回到user对象中,但是此时user是驼峰命名的;下一个参数id是sql命令里面的参数;
接下来讲解update:

public int save(User user) throws Exception {String sql="insert into user (phone,pwd,sex,img,create_time,role,username,wechat) values(?,?,?,?,?,?,?,?)";Object[] params={user.getPhone(),user.getPwd(),user.getSex(),user.getImg(),user.getCreateTime(),user.getRole(),user.getUsername(),user.getWechat()};//        String sql = "delete from user where id= ?";
//        Object [] params = {15};int i=0;try {i= queryRunner.update(sql,params);}catch (Exception e){e.printStackTrace();throw new Exception();}return i;}

注意这里update返回的不是object,而是int数据,还有update是不需要设置驼峰映射的(大家可以自己思考一下),原因是:update并不向user对象逐一返回值,他只是修改数据库的值,而向数据库传值的时候,并不对变量名有要求,只要求位置相对应就可以。

Apache dbutils工具相关推荐

  1. Apache DbUtils工具类初学

    下载jar包:(Linux下载1,Windows下载2) http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi A ...

  2. DbUtils工具类使用

    2019独角兽企业重金招聘Python工程师标准>>> DbUtils工具类使用 创建数据库 CREATE TABLE `student` (`userId` int(11) NOT ...

  3. (转)Apache Commons工具集简介

    (转)Apache Commons工具集简介 Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成 ...

  4. 常用Apache Commons工具类备忘

    常用Apache Commons工具类 ----------------------------------------------------------------- 例如:commons.lan ...

  5. java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】

    Druid连接数据库,DBUtils工具类的使用 1.在maven中添加Druid依赖 com.alibaba druid 1.2.0 2.封装Druid连接方法 import com.alibaba ...

  6. Apache—DBUtils框架简介

    Apache-DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC ...

  7. JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表 - 解无邪

    本文目录: 1.自定义JDBC框架 --数据库元数据:DataBaseMetaData 2.自定义JDBC框架 --数据库元数据:DataBaseMetaData 3.自定义JDBC框架 --结果集元 ...

  8. java dbutils工具类_DbUtils工具类使用

    DbUtils工具类使用 创建数据库 CREATE TABLE `student` ( `userId` int(11) NOT NULL, `userName` varchar(30) NOT NU ...

  9. 数据库连接池与DBUtils工具

    一.数据库连接池 1.什么是数据库连接池 在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源.这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码 ...

最新文章

  1. 【学习笔记】树的计数,prufer(Prüfer)编码,Cayley公式及相应例题
  2. linux 文件系统 启动,linux kernel文件系统启动部分
  3. linux oracle 配置监听器
  4. Linux CentOS下配置SVN+SVN勾子
  5. 腾讯2020校园招聘----逆序对
  6. 智慧交通day02-车流量检测实现09:SORT/deepSORT
  7. python中ndim是什么_Numpy中ndim、shape、dtype、astype的用法详解
  8. linux i o端口编程,linux 操作 I/O 端口
  9. 测试 —— 与开发双手互搏的艺术
  10. Android RecyclerView拖放
  11. Excel 使用ODBC 连接mysql 5.0
  12. C语言程序:判断三角形
  13. swift5.0 代码实现跳转页面Segue (performSegue and prepare)
  14. 台风怎么看内存颗粒_入手三星Bdie颗粒内存条,只超到了3866MHz,看样子得换主板了...
  15. 【Python从零到壹】Python文件的操作详解
  16. 十二月英语学习总结-希冀
  17. oracle数据字典损坏恢复,PRM-DUL成功案例:恢复了700GB损坏严重的Oracle数据库
  18. win10 wifi连接不上服务器未响应,简单几步解决win10wifi一直断开连接不上的问题...
  19. 完整的IPTV电视直播都有哪些功能?
  20. 【数据架构系列-04】趁着国家数据局来了,一起聊聊政府数据开放,未来道阻且长

热门文章

  1. Docker swarm集群管理工具
  2. Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归
  3. 代码块的渲染类型选择测试
  4. python scrapy 爬取妹子图的照片
  5. 垃圾邮件攻击与勒索病毒家族VoidCrypt
  6. WLAN网络配置,vlan内漫游
  7. 工作小结:端正态度,细心!
  8. 这年头,你还能不懂点IP地址吗?
  9. 抖音服务器升级暂时不能修改简介,抖音简介修改内容暂不可用,抖音简介哪些内容不能用...
  10. 错误:没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))