DBCP 数据连接池的配置和使用

来源:互联网 发布:田岛7.0绣花软件 编辑:程序博客网 时间:2024/06/16 01:05

DBCP 数据连接池的配置和使用

标签: 数据库连接池properties数据库stringnulldatabase
15947人阅读 评论(2)收藏举报
本文章已收录于:
分类:
作者同类文章X

    DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个Java 连接池项目,也是 tomcat 使用的连接池组件。

    单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar

    由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用

    完后再放回去。


    获取数据库连接的类:DbcpConnection.java

    [html] view plain copy
    print?
    1. import java.io.FileInputStream;  
    2. import java.io.FileNotFoundException;  
    3. import java.io.IOException;  
    4. import java.sql.Connection;  
    5. import java.sql.SQLException;  
    6. import java.util.Properties;  
    7.   
    8. import javax.sql.DataSource;  
    9. import org.apache.commons.dbcp.BasicDataSource;  
    10. public class DbcpConnection {  
    11.     private static DataSource dataSource;  
    12.     private static Connection connection;  
    13.       
    14.     public static void initDataSource(){  
    15.         FileInputStream is = null;  
    16.         Properties properties = new Properties();  
    17.           
    18.         String driverClassName = null;  
    19.         String url = null;  
    20.         String username = null;  
    21.         String password = null;  
    22.           
    23.         int initialSize = 0;  
    24.         int minIdle = 0;  
    25.         int maxIdle = 0;  
    26.         int maxWait = 0;  
    27.         int maxActive = 0;  
    28.           
    29.         try {  
    30.             String path = System.getProperty("user.dir")+"\\src\\com\\xiami\\db\\connection\\";  
    31.             is = new FileInputStream(path+"dbcp.properties");  
    32.             properties.load(is);  
    33.               
    34.             driverClassName = properties.getProperty("dbcp.driverClassName");  
    35.             url = properties.getProperty("dbcp.url");  
    36.             username = properties.getProperty("dbcp.username");  
    37.             password = properties.getProperty("dbcp.password");  
    38.             initialSize = Integer.parseInt((properties.getProperty("dbcp.initialSize").trim()));  
    39.             minIdle = Integer.parseInt((properties.getProperty("dbcp.minIdle")).trim());  
    40.             maxIdle = Integer.parseInt((properties.getProperty("dbcp.maxIdle")).trim());  
    41.             maxWait = Integer.parseInt((properties.getProperty("dbcp.maxWait")).trim());  
    42.             maxActive = Integer.parseInt((properties.getProperty("dbcp.maxActive")).trim());  
    43.               
    44.         } catch (FileNotFoundException e) {  
    45.             e.printStackTrace();  
    46.         } catch (IOException ioe){  
    47.             ioe.printStackTrace();  
    48.         }finally{  
    49.             try {  
    50.                 is.close();  
    51.             } catch (IOException e) {  
    52.                 // TODO Auto-generated catch block  
    53.                 e.printStackTrace();  
    54.             }  
    55.         }  
    56.         BasicDataSource bds = new BasicDataSource();  
    57.           
    58.         bds.setUrl(url);  
    59.         bds.setDriverClassName(driverClassName);  
    60.         bds.setUsername(username);  
    61.         bds.setPassword(password);  
    62.         bds.setInitialSize(initialSize);  
    63.         bds.setMaxActive(maxActive);  
    64.         bds.setMinIdle(minIdle);  
    65.         bds.setMaxIdle(maxIdle);  
    66.         bds.setMaxWait(maxWait);  
    67.           
    68.         dataSource = bds;  
    69.     }  
    70.       
    71.     public static Connection  getConnection() throws  SQLException {  
    72.         if (dataSource == null) {     
    73.             initDataSource();     
    74.         }     
    75.         Connection conn = null;     
    76.         if (dataSource != null) {     
    77.             conn = dataSource.getConnection();     
    78.         }     
    79.         return conn;     
    80.     }  
    81. }  


    连接数据库信息的配置文件:dbcp.properties

    [html] view plain copy
    print?
    1. dbcp.driverClassName=com.ibm.db2.jcc.DB2Driver  
    2. dbcp.url=jdbc\:db2\://192.168.3.11\:50000/DBNAME  
    3. dbcp.username=db2admin  
    4. dbcp.password=password  
    5. dbcp.initialSize=30    
    6. dbcp.minIdle=10   
    7. dbcp.maxIdle=10    
    8. dbcp.maxWait=1000   
    9. dbcp.maxActive=30   


    在Service层使用的时候:ZhiDianJieDu.java (业务逻辑处理的类)

    [html] view plain copy
    print?
    1. import java.sql.Connection;  
    2. import java.sql.PreparedStatement;  
    3. import java.sql.ResultSet;  
    4. import java.sql.SQLException;  
    5.   
    6. import com.xiami.db.connection.DbcpConnection;  
    7.   
    8. public class ZhiDianJieDu {  
    9.     DbcpConnection dbcpcon = new DbcpConnection();  
    10.     Connection conn = null;  
    11.     PreparedStatement pst = null;  
    12.     ResultSet rs = null;  
    13.     String ZLJGBM = null;  
    14.       
    15.       
    16.     //通过A机构编码获得B机构代码  
    17.     public void getZLJGBMFromDRJGBM(String DRJGBM){  
    18.         String sql = "select ZLJGBM from T_CONTRAST_ZL_TO_NEUSOFT where DRJGBM = '"+DRJGBM+"'";  
    19.         try {  
    20.             conn = dbcpcon.getConnection();  
    21.             pst = conn.prepareStatement(sql);  
    22.             rs = pst.executeQuery();  
    23.             while(rs.next()){  
    24.                 ZLJGBM = rs.getString("ZLJGBM");  
    25.             }  
    26.             System.out.println(ZLJGBM);  
    27.               
    28.         } catch (SQLException e) {  
    29.             // TODO Auto-generated catch block  
    30.             e.printStackTrace();  
    31.         }  
    32.     }  
    33. }  




    2
    4
     
     

      相关文章推荐
    • DBCP 数据连接池的配置和使用
    • 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池
    • DBCP连接池配置参数说明 c3p0使用说明
    • tomcat-dbcp数据库连接池配置以及使用时候的一些坑
    • 数据库连接池(数据源)2: 开源数据源的使用DBCP和C3P0
    • java--开源数据库连接池(dbcp数据源)
    • Java框架数据库连接池比较(c3p0,dbcp和proxool)
    • Spring中数据库连接池的三种配置(dbcp,c3p0,proxool)(转载)
    • Spring中数据库连接池的三种配置(dbcp,c3p0,proxool)(转载)
    • 开源连接池DBCP解析
    原创粉丝点击