Apache dbutils工具
对于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工具相关推荐
- Apache DbUtils工具类初学
下载jar包:(Linux下载1,Windows下载2) http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi A ...
- DbUtils工具类使用
2019独角兽企业重金招聘Python工程师标准>>> DbUtils工具类使用 创建数据库 CREATE TABLE `student` (`userId` int(11) NOT ...
- (转)Apache Commons工具集简介
(转)Apache Commons工具集简介 Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成 ...
- 常用Apache Commons工具类备忘
常用Apache Commons工具类 ----------------------------------------------------------------- 例如:commons.lan ...
- java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】
Druid连接数据库,DBUtils工具类的使用 1.在maven中添加Druid依赖 com.alibaba druid 1.2.0 2.封装Druid连接方法 import com.alibaba ...
- Apache—DBUtils框架简介
Apache-DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC ...
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表 - 解无邪
本文目录: 1.自定义JDBC框架 --数据库元数据:DataBaseMetaData 2.自定义JDBC框架 --数据库元数据:DataBaseMetaData 3.自定义JDBC框架 --结果集元 ...
- java dbutils工具类_DbUtils工具类使用
DbUtils工具类使用 创建数据库 CREATE TABLE `student` ( `userId` int(11) NOT NULL, `userName` varchar(30) NOT NU ...
- 数据库连接池与DBUtils工具
一.数据库连接池 1.什么是数据库连接池 在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源.这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码 ...
最新文章
- 【学习笔记】树的计数,prufer(Prüfer)编码,Cayley公式及相应例题
- linux 文件系统 启动,linux kernel文件系统启动部分
- linux oracle 配置监听器
- Linux CentOS下配置SVN+SVN勾子
- 腾讯2020校园招聘----逆序对
- 智慧交通day02-车流量检测实现09:SORT/deepSORT
- python中ndim是什么_Numpy中ndim、shape、dtype、astype的用法详解
- linux i o端口编程,linux 操作 I/O 端口
- 测试 —— 与开发双手互搏的艺术
- Android RecyclerView拖放
- Excel 使用ODBC 连接mysql 5.0
- C语言程序:判断三角形
- swift5.0 代码实现跳转页面Segue (performSegue and prepare)
- 台风怎么看内存颗粒_入手三星Bdie颗粒内存条,只超到了3866MHz,看样子得换主板了...
- 【Python从零到壹】Python文件的操作详解
- 十二月英语学习总结-希冀
- oracle数据字典损坏恢复,PRM-DUL成功案例:恢复了700GB损坏严重的Oracle数据库
- win10 wifi连接不上服务器未响应,简单几步解决win10wifi一直断开连接不上的问题...
- 完整的IPTV电视直播都有哪些功能?
- 【数据架构系列-04】趁着国家数据局来了,一起聊聊政府数据开放,未来道阻且长
热门文章
- Docker swarm集群管理工具
- Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归
- 代码块的渲染类型选择测试
- python scrapy 爬取妹子图的照片
- 垃圾邮件攻击与勒索病毒家族VoidCrypt
- WLAN网络配置,vlan内漫游
- 工作小结:端正态度,细心!
- 这年头,你还能不懂点IP地址吗?
- 抖音服务器升级暂时不能修改简介,抖音简介修改内容暂不可用,抖音简介哪些内容不能用...
- 错误:没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))