吴鹏
总结
------------------------------------------------------------------
一 连接池:
顾名思义,用来放连接的池子,在程序加载的时候,预先将一些连接放在一个"池子"里,在使用的时候调用,用完再放回池子里;
以往使用连接的做法是,使用的时候创建连接对象,用完了以后再进行销毁,而当使用的连接很多时,创建和销毁连接需要的时间
会非常多,因此使用连接池,使用的时候调用连接,用完了后再放回连接池,大大节省了时间,提高了程序执行的效率;
-----------------------------------------------------------------------
二 C3P0:
1 使用之前,需先把c3p0的jar包导入到项目中;
2 创建C3P0的对象,通过手动或读取配置文件信息,都可以加载驱动,读取库文件和输入用户名及密码:
ComboPooledDataSource dataSource = new ComboPooledDataSource();
若使用手动加载信息的方法:
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setjdbcUrl("数据库所在的位置");
dataSource.setUser("数据库的用户名");
dataSource.setPasswore("数据库的密码");
而加载配置文件来加载信息的话,在创建ComboPooledDataSource()对象的时候,程序就会在src目录下寻找
默认的加载文件,c3p0-config.xml,需要注意的是,配置文件里面的内容的键是固定的,不能自己乱取名,否则
无法识别,
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
//加载驱动,要写上驱动的全类名;
<property name="jdbcUrl">jdbc:mysql:///test</property>
//数据库的地址;
<property name="user">root</property>
//数据库的用户名;
<property name="password">wp</property>
//数据库的密码;
<property name="initialPoolSize">5</property>
//连接库初始的连接数目;
<property name="minPoolSize">5</property>
//默认最小的连接数目;
<property name="maxPoolSize">20</property>
//连接库中最多有几个连接;
</default-config>
以上为配置文件的范本,必须按以上格式;
-----------------------------------
Druid:
是一个连接池,使用方法与C3P0类似,也分为手动输入信息和读取配置文件信息;
同样的,需要导入druid的jar包;
创建对象:
DriudDataSource dataSource = new DruidDataSource();
手动输入调用的方法与c3p0类似:
dataSource.setDriverClassName("驱动的全类名");
dataSource.setUrl("数据库地址");
dataSource.setUsername("用户名");
dataSource.setPassword("密码");
读取文件,是通过创建Preperties对象,调用其方法,通过字节输入流读取配置文件:
Properties properties = new Properties();
properties.load(new FileInputStream("src/配置文件"));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
后面可以直接获得连接对象,执行操作等;
----------------------------------------------------------
三 DBUtils:
是一个工具类,封装了JDBC的代码,大大简化了代码的输入,增强了开发的效率;
它是由阿帕奇提供的一个工具类库,在使用之前,也需要导入DBUtils的jar包;
核心运行类:QueryRunner()
构造方法:
无参:QueryRunner()
有参:QueryRunner(DataSource ds)
方法:
int update(String sql,Object...params);
传入一个sql语句,和若干个可变参数的值,返回值是int类型,代表了改变(增,删,改)的行数;
int update(Connection conn,String sql,Object...params);
传入一个连接对象,一个sql语句,和若干个的可变参数的值,返回值是int类型,代表了改变(增,删,改)的行数;
T query(String sql,ResultSetHandler<T> rsh,Object...params);
传入一个sql语句,一个rsh集合,若干个可变参数的值;
T query(Connection conn,String sql,ResultSetHandler<T> rsh,Object...params);
传入一个连接对象,一个sql语句,一个rsh集合,若干个可变参数的值;
在一般情况下,如果执行增删改查操作:
构造:
有参:QueryRunner(DataSource ds)
方法:
int update(String sql,Object...params);
传入一个sql语句,和若干个可变参数的值,返回值是int类型,代表了改变(增,删,改)的行数;
T query(String sql,ResultSetHandler<T> rsh,Object...params);
传入一个sql语句,一个rsh集合,若干个可变参数的值;
如果有事务管理的话:
构造:
无参:QueryRunner()
方法:
int update(Connection conn,String sql,Object...params);
传入一个连接对象,一个sql语句,和若干个的可变参数的值,返回值是int类型,代表了改变(增,删,改)的行数;
T query(Connection conn,String sql,ResultSetHandler<T> rsh,Object...params);
传入一个连接对象,一个sql语句,一个rsh集合,若干个可变参数的值;
----------------------------------------------------------
四 JDBC、JDBCUtils、C3P0、Druid、DBUtils:
JDBC是一套完整的接口规范的API,规范了java与数据库的连接;
JDBCUtils是把JDBC中重复的代码抽取出来的一个工具类;
C3P0是一个连接池;
Druid是一个连接池;
DBUtils是一个封装了JDBC的工具类,由阿帕奇组织提供的,旨在简化代码,提高编程的效率;
|