Jdbc和工具类
1.DriverManager的jdbc操作:
2.简单封装Jdbc工具类:
(1)采用静态代码块
(2).src文件夹下面:
(3).注意:
3.自定义连接池:
(1).概念
所有的连接池必须实现一个接口 javax.sql.DataSource接口
(2).
4.装饰者模式
<1>使用步骤:
1).装饰者和被装饰者实现同一个接口或者继承同一个类
2).装饰者中要有被装饰者的引用
3).对需要增强的方法进行加强
4).对不需要加强的方法调用原来方法
<2>
<3>
5.Dbcp连接池方式:
(1) 准备工作:
导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar)
(2)
(3)
6.C3P0连接池
(1).准备工作
导入jar包(c3p0-0.9.1.2.jar)
(2)
(3)
(4)
7.dbutils工具类完成curd操作
(1)概念
导入jar包(commons-dbutils-1.4.jar)
(2)
(3)自制DataResourceUtils工具类,里面用的是c3p0框架
public class DataResourceUtils {
private static ComboPooledDataSource pooledDataSource=new ComboPooledDataSource();
/**
* 获得连接池
* @return 连接池
*/
public static DataSource getDataSource() {
return pooledDataSource;
}
/**
* 获得连接
* @return 连接
* @throws SQLException
*/
public static Connection getConnectin() throws SQLException {
return pooledDataSource.getConnection();
}
// 释放资源
public static void closeResource(Connection connection, Statement statement, ResultSet resultSet) {
closeResultSet(resultSet);
closeStatement(statement);
closeConnection(connection);
}
/**
* 释放连接
* @param connection 连接
*/
public static void closeConnection(Connection connection) {
if (connection!=null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
connection=null;
}
}
/**
* 释放语句执行者
* @param statement 语句执行者
*/
public static void closeStatement(Statement statement) {
if (statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement=null;
}
}
/**
* 释放结果集
* @param resultSet 结果集
*/
public static void closeResultSet(ResultSet resultSet) {
if (resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
resultSet=null;
}
}
}