时间:2021-07-01 10:21:17 帮助过:9人阅读
该段程序首先执行静态代码块加载配置文件
获得配置文件对象
ResourceBundle bundle=ResourceBundle.getBundle("db");//获得配置文件对象
声明连接池对象(静态代码块外)
private static ComboPooledDataSource dataSource;
获得连接池对象
dataSource = new ComboPooledDataSource();//获得连接池对象
获得配置文件内容
bundle.getString("url")
对连接池进行设置
1 dataSource.setJdbcUrl(bundle.getString("url")); 2 dataSource.setUser(bundle.getString("username")); 3 dataSource.setPassword(bundle.getString("password")); 4 dataSource.setMinPoolSize(10);//连接池最小连接数 5 dataSource.setInitialPoolSize(20);//连接池创建时连接数 6 dataSource.setMaxPoolSize(80);//连接池最大连接数 7 dataSource.setAcquireIncrement(10);//链接用完时创建的连接数 8 dataSource.setNumHelperThreads(5);//多线程执行,提升性能
以上静态代码块在加载类的时候就执行,并且只执行一次,避免了每次获得对象都要创建连接池的错误,防止了链接堆积过多的问题
获得链接:
1 /** 2 * 3 * @return 返回一个链接 4 */ 5 public static Connection getConnection(){ 6 try { 7 return dataSource.getConnection(); 8 } catch (SQLException e) { 9 // TODO Auto-generated catch block 10 e.printStackTrace(); 11 System.out.println("未返回链接"); 12 return null; 13 } 14 }
关闭资源,放回链接:
1 /** 2 * @see 关闭资源 3 * @param rs 4 * @param stm 5 * @param conn 6 */ 7 public static void reLeast(ResultSet rs,Statement stm,Connection conn) { 8 if(rs!=null){ 9 try { 10 rs.close(); 11 } catch (SQLException e) { 12 13 e.printStackTrace(); 14 }finally{ 15 rs=null; 16 } 17 } 18 19 if(stm!=null){ 20 try { 21 stm.close(); 22 } catch (SQLException e) { 23 24 e.printStackTrace(); 25 }finally{ 26 stm=null; 27 } 28 } 29 30 if(conn!=null){ 31 try { 32 conn.close(); 33 System.out.println("conn yiguanbi"); 34 } catch (SQLException e) { 35 36 e.printStackTrace(); 37 }finally{ 38 conn=null; 39 } 40 } 41 } 42
JDBCUtils,一个操作关系型数据库的小工具
标签:加载 最大 logs int 问题 getc oid least generate