DBUtils的概述
- DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能
DBUtils的常用API介绍
-
创建QueryRunner对象的API
public QueryRunner(DataSource ds)
,提供数据源(连接池),DBUtils底层自动维护连接connection -
QueryRunner执行增删改的SQL语句的API
int update(String sql, Object... params)
, params参数就是可变参数,参数个数取决于语句中问号的个数-
eg参数1:
update user set password = ? where username = ?
-
eg参数2: “123456”,“zs”
-
-
执行查询的SQL语句的API
query(String sql, ResultSetHandler<T> rsh, Object... params)
,其中ResultSetHandler是一个接口,表示结果集处理者-
eg参数1:
select * from user where username = ? and password = ?
-
eg参数2: 指定查询结果封装的类型
-
eg参数3: zs , 123456
-
jar包的获取:
- DBUtils : commons-dbutils-1.4.jar
3.2 使用DBUtils完成增删改
-
实现步骤:
- 导入DButils的jar包---->mysql驱动包,第三方数据库连接池的jar包,配置文件,工具类
- 创建QueryRunner对象,传入连接池对象
- 调用update方法执行sql语句
代码示例:
package com.DBUtils;
import com.Utils.c3p0Utils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.junit.Test;
import java.sql.SQLException;
import java.util.Arrays;
/**
* @Author: Mr.Xu
* @description: DBUtils的增删改查
* @Date: 2021/10/15 0:34
*/
public class Test_1 {
//增加
@Test
public void insert() throws SQLException {
//- 导入DButils的jar包---->mysql驱动包,第三方数据库连接池的jar包,配置文件,工具类
// - 创建QueryRunner对象,传入连接池对象
QueryRunner queryRunner = new QueryRunner(c3p0Utils.getDataSources());
// - 调用update方法执行sql语句
int rows = queryRunner.update("insert into user values(null,?,?,?)", "zl", "123456", "老赵");
System.out.println("受影响的行数:"+rows);
}
// 删除
@Test
public void deleta() throws SQLException {
//- 导入DButils的jar包---->mysql驱动包,第三方数据库连接池的jar包,配置文件,工具类
// - 创建QueryRunner对象,传入连接池对象
QueryRunner queryRunner = new QueryRunner(c3p0Utils.getDataSources());
// - 调用update方法执行sql语句
int rows = queryRunner.update("delete from user where id = ?", 8);
System.out.println("受影响的行数:"+rows);
}
// 修改
@Test
public void update() throws SQLException {
//- 导入DButils的jar包---->mysql驱动包,第三方数据库连接池的jar包,配置文件,工具类
// - 创建QueryRunner对象,传入连接池对象
QueryRunner queryRunner = new QueryRunner(c3p0Utils.getDataSources());
// - 调用update方法执行sql语句
int rows = queryRunner.update("update user set password = ? where id = ?", "abcdef",8);
System.out.println("受影响的行数:"+rows);
}
// 查询
@Test
public void select() throws SQLException {
//- 导入DButils的jar包---->mysql驱动包,第三方数据库连接池的jar包,配置文件,工具类
// - 创建QueryRunner对象,传入连接池对象
QueryRunner queryRunner = new QueryRunner(c3p0Utils.getDataSources());
// - 调用query方法执行sql语句
Object[] zs = queryRunner.query("select * from user where username = ? and password = ?", new ArrayHandler(), "zs", 123456);
System.out.println(Arrays.toString(zs));
}
}