数据库连接池druid

数据库连接池技术,在java程序中,有三个比较常用:c3p0、dbcp、druid。
建议:如果从代码性能角度出发,建议使用druid或者dbcp。
如果代码的简洁性角度出发,建议使用c3p0,但是其有个毛病,就是效率比较低。
1、导入连接池的包
2、将连接信息放置在druid.properties文件中
在这里插入图片描述
3、连接池对象在jdbc操作时,用数据源DataSource来表示,所以我们应当获取到druid数据库连接池对应的数据源对象!
在这里插入图片描述
创建Druid数据源时,需要指定一个属性文件对象,因为要为数据源中的数据库连接对象设置连接信息!所以先通过输入流读取到druid.properties配置文件中的连接信息,然后将读取到的信息加载到属性文件对象中,进而传递到创建数据源的方法中!那么此时得到的数据源对象中的连接对象就具备了连接信息!

DbUtils+Druid完成数据库操作的示例代码:

public static void updateDemo() throws SQLException {
		/*
		 	使用数据库连接池,只是改变了连接对象的获取方式,提升了程序的性能!与DbUtils的操作代码是无关的!
		 	现在无需再手动获取、创建连接对象了,因为我们现在已经拿到了Druid的数据源,我们就可以从数据源中获取到连接池
		 	管理的连接对象了!
		 	
		 	这是使用DbUtils+Druid的第一种形式,手动从数据源中获取连接对象使用!
		 */
		//获取数据源
		DataSource dataSource = DruidUtils.getDataSource();
		//从数据源中获取连接对象
		Connection connection = dataSource.getConnection();
		//创建QueryRunner对象
		QueryRunner qRunner = new QueryRunner();
		//执行sql语句
		int row = qRunner.update(connection, "update student set phone = ? where sid = ?",
				"155", 3);
		//处理结果
		System.out.println(row > 0 ? "修改成功" : "修改失败");
		//释放资源
		/*
		 	如果此时的连接对象是从数据源中获取到的,在执行释放资源的方法时,不是将其销毁,而是归还池子
		 */
		DbUtils.close(connection);
	}
	
	public static void selectDemo() throws SQLException {
		/*
		 	使用DbUtils+Druid的第二种形式,我们无需手动从数据源中获取连接对象
		 	只需要在QueryRunner对象创建时,传递数据源作为参数,即可自动去数据源中获取连接!
		 	而且此时在操作完数据库之后,也不需要释放资源,因为会自动将获取到的连接归还池子!
		 */
		//创建QueryRunner对象,指定数据源
		QueryRunner qRunner = new QueryRunner(DruidUtils.getDataSource());
		//执行sql语句,此时因为连接对象是自动获取的,所以方法的参数中不需要再传递连接对象Connection
		List<Student> stus = 
				qRunner.query("select * from student", new BeanListHandler<Student>(Student.class));
		for (Student student : stus) {
			System.out.println(student);
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值