标签:error statement ase connect cti 创建 print tco ref
在实际开发中,发现对象的方法满足不了开发需求时,有3种方式对其进行增强
1、写一个子类,覆盖其方法,增强其方法
2、用包装设计模式
3、动态代理 最常用的
连接池 连接会经常用,但是每次都要调用,程序过于冗杂,所以用连接池优化
dbcp
c3p0
tomcat内置的(dbcp)
只介绍dpcp和c3p0 dpcp和c3p0代码类似,所以用dpcp
1、导入dpcp的包 commons-pool.jar和commons-dbcp-1.2.2.jar 、dpcpconfig的配置文件 mysql的包也导入,以后不说 具体可在百度云找到
package com.cn.utils;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
//dbcp连接池
public class JdbcUtils_dpcp {
private static DataSource ds = null;
static {
try {
// 读取配置文件
InputStream is = JdbcUtils_dpcp.class.getClassLoader()
.getResourceAsStream("dbcpconfig.properties");
Properties prop = new Properties();
prop.load(is);
// 创建数据源
BasicDataSourceFactory factory = new BasicDataSourceFactory();
ds = factory.createDataSource(prop);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
public static void release(Connection conn, ResultSet rs, Statement st) {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
rs = null;
}
if (st != null) {
try {
st.close();
} catch (Exception e) {
e.printStackTrace();
}
st = null;
}
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
标签:error statement ase connect cti 创建 print tco ref
原文地址:http://www.cnblogs.com/zengjiao/p/7763925.html