DBCP连接池技术详解

  1. DBCP连接池  

DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。

  1. 导入jar


  1. 编写工具类

连接数据库表的工具类, 采用DBCP连接池的方式来完成,Java中提供了一个连接池的规则接口 :

DataSource : 它是java中提供的连接池,作为 DriverManager 工具的替代项。在DBCP包中提供了DataSource接口的实现类,我们要用的具体的连接池 BasicDataSource类

public class JDBCUtils {

public static final String DRIVER = "com.mysql.jdbc.Driver";

public static final String URL = "jdbc:mysql://localhost:3306/daydb";

public static final String USERNAME = "root";

public static final String PASSWORD = "123";

/*

* 创建连接池BasicDataSource

*/

public static BasicDataSource dataSource = new BasicDataSource();

//静态代码块

static {

//对连接池对象 进行基本的配置

dataSource.setDriverClassName(DRIVER); // 这是要连接的数据库的驱动

dataSource.setUrl(URL); //指定要连接的数据库地址

dataSource.setUsername(USERNAME); //指定要连接数据的用户名

dataSource.setPassword(PASSWORD); //指定要连接数据的密码

}

/*

* 返回连接池对象

*/

public static DataSource getDataSource(){

return dataSource;

}

}

  1. 工具类的使用
  • 测试类

/*

 * 演示使用DBUtils工具  完成数据库表的增加操作

 */

public class Demo {

// 插入功能 

@Test

public void insert(){

try {

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

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

String sql = "INSERT INTO person(pname,age) VALUES(?,?)";

Object[] params = {"大逗比", 147};

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

//结果集处理

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

} catch (SQLException e) {

throw new RuntimeException(e);

}

}


//更新功能

@Test

public void update(){

try {

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

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

//执行SQL语句

String sql = "UPDATE person SET age = age+2 WHERE pname=?";

Object[] params = {“哈"};

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

//结果集的处理

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

} catch (SQLException e) {

throw new RuntimeException(e);

}

}


//删除功能

@Test

public void delete(){

try {

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

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

//执行SQL语句

String sql = "DELETE FROM person WHERE pname = ?";

Object[] params = {"二狗"};

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

//结果集的处理

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

} catch (SQLException e) {

throw new RuntimeException(e);

}

}



//更新功能

@Test

public void update(){

try {

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

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

//执行SQL语句

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

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

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

//结果集的处理

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

} catch (SQLException e) {

throw new RuntimeException(e);

}

}

//查询功能,将结果集中第一条记录封装到一个指定的javaBean中。

@Test

public void search(){

try{

//获取QueryRunner 

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

//执行SQL语句

String sql = "SELECT * FROM zhangwu";

Object[] params = {};

Product p = qr.query(sql, new BeanHandler<Product>(Product.class), params);

//结果集处理

System.out.println(p);

} catch(SQLException e){

throw new RuntimeException(e);

}

}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值