当前位置:Gxlcms > 数据库问题 > JDBCUtils,一个操作关系型数据库的小工具

JDBCUtils,一个操作关系型数据库的小工具

时间:2021-07-01 10:21:17 帮助过:9人阅读

public class SqlC3p0Utils { 2 private static ComboPooledDataSource dataSource; 3 static{ 4 ResourceBundle bundle=ResourceBundle.getBundle("db");//获得配置文件对象 5 dataSource = new ComboPooledDataSource();//获得连接池对象 6 //根据配置文件队连接池进行配置 7 try { 8 dataSource.setDriverClass(bundle.getString("driverClass")); 9 } catch (PropertyVetoException e) { 10 // TODO Auto-generated catch block 11 e.printStackTrace(); 12 System.out.print("未找到驱动"); 13 } 14 dataSource.setJdbcUrl(bundle.getString("url")); 15 dataSource.setUser(bundle.getString("username")); 16 dataSource.setPassword(bundle.getString("password")); 17 dataSource.setMinPoolSize(10);//连接池最小连接数 18 dataSource.setInitialPoolSize(20);//连接池创建时连接数 19 dataSource.setMaxPoolSize(80);//连接池最大连接数 20 dataSource.setAcquireIncrement(10);//链接用完时创建的连接数 21 dataSource.setNumHelperThreads(5);//多线程执行,提升性能 22 } 23 /** 24 * 25 * @return 返回一个链接 26 */ 27 public static Connection getConnection(){ 28 try { 29 return dataSource.getConnection(); 30 } catch (SQLException e) { 31 // TODO Auto-generated catch block 32 e.printStackTrace(); 33 System.out.println("未返回链接"); 34 return null; 35 } 36 } 37 38 /** 39 * @see 关闭资源 40 * @param rs 41 * @param stm 42 * @param conn 43 */ 44 public static void reLeast(ResultSet rs,Statement stm,Connection conn) { 45 if(rs!=null){ 46 try { 47 rs.close(); 48 } catch (SQLException e) { 49 50 e.printStackTrace(); 51 }finally{ 52 rs=null; 53 } 54 } 55 56 if(stm!=null){ 57 try { 58 stm.close(); 59 } catch (SQLException e) { 60 61 e.printStackTrace(); 62 }finally{ 63 stm=null; 64 } 65 } 66 if(conn!=null){ 67 try { 68 conn.close(); 69 System.out.println("conn yiguanbi"); 70 } catch (SQLException e) { 71 72 e.printStackTrace(); 73 }finally{ 74 conn=null; 75 } 76 } 77 } 78 }

 

该段程序首先执行静态代码块加载配置文件

获得配置文件对象

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   

人气教程排行