快速了解数据库连接池的使用

11 篇文章 0 订阅
6 篇文章 0 订阅

快速了解数据库连接池的使用

1.基本了解
 * java为了解决频繁创建数据库连接和释放数据库链接的问题
 * 使用了 数据库连接池来解决
 * 并且 出了一套规划部 数据库连接池规范(接口)
 * javax.sql.DataSource java扩展包
 * 由数据库厂商提供的 DBCP C3P0
 * 常用数据库连接池 DBCP C3P0
 * 需要导入jar包有2个(dbcp中依赖pool jar包中的类)
 * mysql-connector-java-5.1.37-bin.jar
 * commons-dbcp-1.4.jar
 * commons-pool-1.5.6.jar
 * BasicDataSource 是 DataSource(规范类)的实现类
 * 基础设置(要使用数据库连接池 必须要设置的内容)
 * mysql驱动类 com.mysql.jdbc.Driver
2.规划解数据库连接池
import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class DataSourceUtil {
      private static BasicDataSource dataSource = new BasicDataSource();
      static {
         //设置dataSource
          //mysql的驱动类的全限定类名
          dataSource.setDriverClassName("com.mysql.jdbc.Driver");
          dataSource.setUrl("jdbc:mysql://localhost:3306/myjdbc");
          dataSource.setUsername("root");
          dataSource.setPassword("123456");
          //扩展设置
          //初始化连接上
          dataSource.setInitialSize(10);
          //最大活动数
          dataSource.setMaxActive(8);
          //最大空闲连接数
          dataSource.setMaxIdle(5);
          //最小空闲连接数
          dataSource.setMinIdle(2);
      }
      //获取数据库连接池方法
      public static DataSource get() {
        return dataSource;
    }
    public static DataSource getDataSource() {
        // TODO Auto-generated method stub
        return dataSource;
    }


}
3.测试DataSourceUtil类
import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

/*
 * 测试DataSourceUtil类
 */
public class Demo03 {
    public static void main(String[] args) throws SQLException {
        QueryRunner qr = new QueryRunner(DataSourceUtil.getDataSource());
        //插入一条数据
        String sql = "insert into sort values(null,?,?,?)";
        Object[] params = {"试卷",10,"一份万分试卷"};
        int row = qr.update(sql,params);
        if (row > 0) {
            System.out.println("插入成功");
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值