32-DBUtils和连接池

本文详细介绍了DBUtils工具的使用,包括它的核心功能,如简化JDBC操作的QueryRunner类,以及如何进行添加、更新和删除操作。此外,还讲解了连接池的概念和DBCP连接池的运用,演示了如何配置和使用DBCP连接池进行数据库操作。
摘要由CSDN通过智能技术生成

第30天 DBUtils和连接池

今日内容介绍

  1. DBUtils
  2. 连接池
  1. DBUtils

如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils。

DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。

    1. 概述

DBUtils是java编程中的数据库操作实用工具,小巧简单实用。

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

Dbutils三个核心功能介绍

  1. QueryRunner中提供对sql语句操作的API.
  2. ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
  3. DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
    1. QueryRunner核心类
  1. update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
  2. query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作
    1. QueryRunner实现添加、更新、删除操作
  3. update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
      1. 添加

public void insert(){

try {

//获取一个用来执行SQL语句的对象   QueryRunner

QueryRunner qr = new QueryRunner();

 

String sql = "INSERT INTO zhangwu(name,money,parent) VALUES(?,?,?)";

Object[] params = { "股票收入", 5500, "收入"};

Connection conn = JDBCUtils.getConnection();

int line = qr.update(conn,sql,params);// 用来完成表数据的增加、删除、更新操作

//结果集处理

System.out.println("line = " + line);

 

} catch (SQLException e) {

throw new RuntimeException(e);

}

}

      1. 更新

public void update(){

try {

//创建一个QueryRunner对象,用来完成SQL语句的执行

QueryRunner qr = new QueryRunner();

//执行SQL语句

String sql = "UPDATE zhangwu SET money = money+1000 WHERE name=?";

Object[] params = { "股票收入"};

Connection conn = JDBCUtils.getConnection();

int line = qr.update(conn, sql, params);

//结果集的处理

System.out.println("line="+line);

 

} catch (SQLException e) {

throw new RuntimeException(e);

}

}

      1. 删除

public void delete(){

try {

//创建一个QueryRunner对象,用来完成SQL语句的执行

QueryRunner qr = new QueryRunner();

//执行SQL语句

String sql = "DELETE FROM zhangwu WHERE name = ?";

Object[] params = { "股票收入"};

Connection conn = JDBCUtils.getConnection();

int line = qr.update(conn, sql, params);

//结果集的处理

System.out.println("line="+line);

 

} catch (SQLException e) {

throw new RuntimeException(e);

}

}

    1. QueryRunner实现查询操作
  1. query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作
      1. ResultSetHandler结果集处理类

ArrayHandler

将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

ArrayListHandler

将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

BeanHandler

将结果集中第一条记录封装到一个指定的javaBean中。

BeanListHandler

将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

ColumnListHandler

将结果集中指定的列的字段值,封装到一个List集合中

ScalarHandler

它是用于单数据。例如select count(*) from 表操作。

MapHandler

将结果集第一行封装到Map集合中,Key 列名, Value 该列数据

MapListHandler

将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

      1. JavaBean

JavaBean就是一个类,在开发中常用封装数据。具有如下特性

  1. 需要实现接口:java.io.Serializable ,通常实现接口这步骤省略了,不会影响程序。
  2. 提供私有字段:private 类型 字段名;
  3. 提供getter/setter方法:
  4. 提供无参构造

/*

 * 账务类

 */

public class ZhangWu {

private int id;

private String name;

private double money;

private String parent;

 

public ZhangWu() {

super();

}

public int getId() {

return id;

}

public void setId(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值