DBUtils工具包
一.介绍
DBUtils是Apache组织开源的数据库工具类。
二.使用步骤
①.创建QueryRunner对象
②.调用update()方法或者query()方法执行sql语句
三.构造方法及静态方法
QueryRunner类
1.构造方法
①.无参构造
QueryRunner qr =new QueryRunner();
使用无参构造的时候,调用update方法和query方法时就需要使用带Connection 类型参数的重载形式
②.有参构造
QueryRunner qr= new QueryRunner(DataSource dataSource);
这个参数是连接池对象
2.静态方法
①.int update(Connection con ,String sql ,Param);
该方法用于增删改语句的操作
参数介绍:
参数一:连接池对象(这个在无参构造的时候使用)
参数二:sql语句
参数三:可变参数(就是sql占位符的值)
返回值:int类型的 返回受影响的行数
简单update demo
1 public classDemo {2 public static void main(String[] args) throwsException {3 /*
4 * 演示有参构造的update()方法5 *6 * 首先得导入jar包7 * 配置好C3P0的配置文件与准备好C3P0工具类8 * 然后创建QueryRunner对象9 * 调用update方法10 * 最后处理结果11 */
12 QueryRunner qr = newQueryRunner(C3P0Utils.getDataSource());13 int re = qr.update("update user set name=? where uid=?","张三",2);14 if(re>0){15 System.out.println("修改成功");16 }else{17 System.out.println("修改失败");18 }19 }20 }
附上简单的C3P0工具类
1 public classC3P0Utils {2 private static DataSource dataSource=newComboPooledDataSource();3 /**
4 * 获得DataSource实现类对象5 *@return
6 */
7 public staticDataSource getDataSource(){8 returndataSource;9 }10 /**
11 * 获得连接12 *@return
13 *@throwsException14 */
15 public static Connection getConnection()throwsException{16 returndataSource.getConnection();17 }18 }
②.query(Connection con , String sql ,Param ...)
该方法用于出查询操作
参数介绍:
参数一:Connection 数据库连接对象, 使用带参构造时可以不用
参数二:sql语句
参数三:表示对结果集的处理方式 (ResultSetHandler接口)
ArrayHandler: 表示将结果集第一行的数据存入数组
ArrayListHandler 将结果集每一行的数据存入数组,多个数组存入集合 List
BeanHandler 表示将结果集第一行的数据存入Java Bean对象
BeanListHandler 表示将结果集每一行的数据存入Java Bean对象 ,多个对象存入集合
ColumnListHandler 表示将某一列的数据存入集合
MapHandler 表示将结果集第一行的数据存入Map集合 :键:列名 值:列的值
MapListHandler 表示将结果集每一行的数据存入Map集合 多个Map存入List集合 List>
ScalarHandler 获取一个值: count(*) sum(price)
参数四:可变参数(就是sql占位符的值)
使用BeanListHandler处理方式的demo:
1 public void demo1() throwsException{2 QueryRunner qr = newQueryRunner(MyC3P0Utils.getDataSource());3 List list = qr.query("select * from car where price<20 order by price desc", new BeanListHandler<>(Car.class));4 for(Car car : list) {5 System.out.println(car);6 }7
8 }
javaBean类的编写:
1 public classCar {2 private intcid;3 privateString cname;4 privateString company;5 privateString grade;6 private doubleprice;7 @Override8 publicString toString() {9 return "Car [cid=" + cid + ", cname=" + cname + ", company=" + company + ", grade=" + grade + ", price=" +price10 + "]";11 }12 public intgetCid() {13 returncid;14 }15 public void setCid(intcid) {16 this.cid =cid;17 }18 publicString getCname() {19 returncname;20 }21 public voidsetCname(String cname) {22 this.cname =cname;23 }24 publicString getCompany() {25 returncompany;26 }27 public voidsetCompany(String company) {28 this.company =company;29 }30 publicString getGrade() {31 returngrade;32 }33 public voidsetGrade(String grade) {34 this.grade =grade;35 }36 public doublegetPrice() {37 returnprice;38 }39 public void setPrice(doubleprice) {40 this.price =price;41 }42 public Car(int cid, String cname, String company, String grade, doubleprice) {43 super();44 this.cid =cid;45 this.cname =cname;46 this.company =company;47 this.grade =grade;48 this.price =price;49 }50 publicCar() {51 super();52 //TODO Auto-generated constructor stub
53 }54
55 }