9.0 DBCP连接池

DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。(我用的是阿里的德鲁伊连接池)
**

1.导入jar包

**
也可以不需要导包,直接创建maven工程。
DBCP驱动需要导入两个jar包。其他C3P0和Druid驱动只需要一个jar包。
在这里插入图片描述
**

1.2 编写工具类

**
连接数据库表的工具类, 采用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 = "root";
	/*
	 * 创建连接池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;
	}
}

**
连接方式二

public void testGetConnection1() throws Exception{
		Properties pros = new Properties();
		
		//方式1:
		//InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties");
		//方式2:
		FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));
		
		
		pros.load(is);
		DataSource source = BasicDataSourceFactory.createDataSource(pros);
		
		Connection conn = source.getConnection();
		System.out.println(conn);
	}

1.3 工具类的使用

**
测试类

/*
 * 演示使用DBUtils工具  完成数据库表的增加操作
 */
public class Demo {
	// 插入功能 
	@Test
	public void insert(){
		try {
			//获取一个用来执行SQL语句的对象   QueryRunner
			QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "INSERT INTO zhangwu(name,money,parent) VALUES(?,?,?)";
			Object[] params = {"股票收入", 5500, "收入"};	
		     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 zhangwu WHERE name = ?";
			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);
		}
	}
}

**

1.4 常见配置项

**
在这里插入图片描述
参考文档:http://commons.apache.org/proper/commons-dbcp/configuration.html

配置文件举例:dbcp.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///test
username=root
password=abc123
initialSize=10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值