1. 自定义连接池:
为了自定义连接池,并且面向接口编程,不增加额外的方法,需要首先增强Connection的close方法,将其原有的释放资源的功能,更改为回收资源。
增强完毕之后,增强后的Connection对象为MyConnection。
下面,自定义连接池(MyDataSource),实现java.sql.DataSource接口。
该连接池的构造中默认创建一个连接池(list集合),存放三个Connection连接对象。
重写原有的getConnection()方法,将原有方法中直接返回Connection对象的方式更改为返回MyConnection对象,这样,外面得到的conn对象就是MyConnection对象
如此一来,当调用conn.close方法的时候,实际上调用的是MyConnection对象的被增强过的close方法
2. JDBC+工具类 -CRUD
1) jar包:mysql驱动包
2) 准备一个配置文件 jdbc.properties. 配置信息(驱动类 数据连接地址 用户名 密码)
3) 准备工具类(抽取公共方法到此类中)
获得连接:读取配置文件à注册驱动à获得连接
释放资源: 在conn.close()处传入什么conn对象,则调用他的close方法
4) 书写基本 的JDBC操作 获得连接(工具类)à得预编译对象à执行SQL语句à处理结果集à释放资源(工具类)
3. DBCP
1) 导入jar包: dbcp jar包、pool jar
2) 准备配置文件。
配置文件中,配置信息的名称固定 (driverClassName url usernamepassword)
3) Jdbc操作步骤
获得连接池
//获得连接池
DataSource ds = BasicDataSourceFactory.createDataSource(Properties p);
conn = ds.getConnection();//已经经过增强过的Connection对象
…
释放资源
conn.close()
4. C3P0
1) 导入c3p0 jar包
2) 准备配置文件 c3p0-config.xml (配置信息固定)
3) 得到连接池 ComboPooledDataSource ds = new ComboPooledDataSource();
4) 得到连接 conn = ds.getConnection();
5) 释放资源
5. JDBC中数据库date类型的字段,需要使用java.sql.Date接收
java.sql.Date date = rs.getDate(3);
java.util.Date myDate = new Date(date.getTime());