标签: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