c3p0的使用场景与注意点
- c3p0在jdbc中的作用是集成了获取connection对象的各种方法。
- 同时也实现了数据库连接池的功能
配置文件
配置文件是放在src下的命名为c3p0-config.xml的文件,
它的作用是配置数据库的基本信息,以便让c3p0底层去连接数据库
dataSource
配置文件有了之后,通常是创建一个工具类,然后new一个CombolPooledDataSource类的dataSource数据,
它用来获取Connection对象,这个Connection对象是从dataSource提前从数据库里创建好的连接池里获取的对象,
同样这个connection的close也是重写过的方法,重写的方式是动态代理的方式,使用一个代理类代理了基本connection类的close方法。
重写的close方法的功能是把这个获取到的connection对象返回到连接池中去
实现事物回滚
要想实现事物回滚的功能,要先从dataSource中获取一个Connection对象,
然后调用这个对象的setAutoCommit方法赋值false,那么这个connection对象就是一个开启事功能的对象了
当使用这个connection对象执行完一个或多个sql语句之后可调用DbUtils的commitAndCloseQuietly方法提交或者rollbackAndCloseQuietly方法回滚
commons.DbUtils工具类
QueryRunner类
这个类是Dbutil用于java执行sql语句的一个集成工具类它里面有许多执行sql语句的方法
在实例化是一般会传入一个dataSource实例,
这样在它需要获取连接时就可以在dataSource中的连接池中获取connection
query方法
此方法用于select的sql语句
query可以传入的参数有:
- connection对象,通常情况在 QueryRunner对象实例化时有Datasouce参数,那么query方法就不需要添加connection这个参数,添加这个connection对象一般传的是一个开启事务功能的connection对象,但是要手动的去关闭这个connnection
- sql语句
- ResultSetHandler对象—–用来处理将数据库里查询出来的数据封装成一个javaBean
- sql中通配符的数据
update
这个方法一般是在delete、insert、updat这些sql时使用这一方法
update可以传入的参数有:
- con
- sql
- sql中通配符的数据,可以是一个Object数组