Java 数据库 03 连接池

1 连接池

1.1 介绍

实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection。这样我们就不需要每次都创建连接、释放连接了,这些操作都交给了连接池。

用池来管理Connection,这样可以重复使用Connection。有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池,这样池就可以再利用这个Connection对象了。

1.2 DBCP连接池

1)导入jar包

  • commons-dbcp2-2.5.0.jar
  • commons-pool2-2.6.0.jar
  • commons-logging-1.2.jar

2)编写工具类

public class JDBCUtils {

    public static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    public static final String URL = "jdbc:mysql://localhost:3306/my_db";
    public static final String USER = "root";
    public static final String PASSWORD = "rootroot";

    // 1 创建连接池 BasicDataSource
    public static BasicDataSource dataSource=new BasicDataSource();
    // 2 静态代码块
    static {
        // 对连接池对象进行进本的配置
        dataSource.setDriverClassName(DRIVERNAME);
        dataSource.setUrl(URL);
        dataSource.setUsername(USER);
        dataSource.setPassword(PASSWORD);
    }
    // 3 返回连接池对象
    public static javax.sql.DataSource getDataSource() {
        return dataSource;
    }
}

3)工具类的使用

插入记录:

public static void main(String[] args) throws Exception {

    // 1 获取一个用来执行SQL语句的对象
    QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
    // 2 SQL语句
    String sql = "insert into zhangwu(name,money,parent) values(?,?,?)";
    Object[] params = {"业余收入",6000,"收入"};
    // 3 对数据库进行操作
    int line=queryRunner.update(sql, params);
    // 4 结果集处理
    System.out.println("line="+line);

}

更新记录:

// 1 获取一个用来执行SQL语句的对象
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
// 2 SQL语句
String sql = "update zhangwu set money = money+1000 where name=?";
Object[] params = { "业余收入"};
// 3 对数据库进行操作
int line = queryRunner.update(sql, params);
// 4 结果集处理
System.out.println("line=" + line);

查询记录:

// 1 获取一个用来执行SQL语句的对象
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
// 2 SQL语句
String sql = "select * from zhangwu";
Object[] params = {};
// 3 对数据库进行操作
ZhangWu zWu=queryRunner.query(sql, new BeanHandler<ZhangWu>(ZhangWu.class),params);
// 4 结果集处理
System.out.println(zWu);

删除记录:

// 1 获取一个用来执行SQL语句的对象
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
// 2 SQL语句
String sql = "delete from zhangwu where name=?";
Object[] params = {"灰色收入"};
// 3 对数据库进行操作
int line=queryRunner.update(sql, params);
// 4 结果集处理
System.out.println(line);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值