JDBCデータベース接続プールDBPP構成


JDK Complianceバージョン5.0、必要なJarはcommons-dbcp-1.3である.JArとcommons-pool.jar.(Apache公式サイトでダウンロード可能).
まず、srcの下にdbcpを新規作成する必要がある.propertiesプロパティファイル:
driverClassName=com.mysql.jdbc.Driver



url=jdbc:MySQL://127.0.0.1:3306/your_db



username=root



password=root



#<!--       -->

initialSize=3



#      

maxActive=20



#<!--        -->

maxIdle=10



#<!--        -->

minIdle=3



#<!--              6000  /1000  60  -->

maxWait=60000



#JDBC                        :[   =property;] 

#  :"user"   "password"            ,           。

connectionProperties=useUnicode=true;characterEncoding=gbk



#                 (auto-commit)  。

defaultAutoCommit=true



#driver default                (read-only)  。

#        , “setReadOnly”       。(            , :Informix)

defaultReadOnly=



#driver default                  (TransactionIsolation)。

#        :(    javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE

defaultTransactionIsolation=READ_COMMITTED

次にConnectionを管理するクラスが必要です.例:JdbcUtils.java
import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.net.MalformedURLException;

import java.net.URISyntaxException;

import java.net.URL;

import java.sql.Connection;

import java.sql.SQLException;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;





public class JdbcUitls {

    //DataSource DBCP       



    private static DataSource ds=null;



    //      ,         ,  new 



    //                 ,           ,      



    static{



        try{



            //      

            Properties prop =new Properties();

            

            URL url;

            try {

                url = new URL(JdbcUitls.class.getClassLoader().getResource("")+"db.properties");

                                

                File file = new File(url.toURI());

                

                InputStream is = new FileInputStream(file);

                    

                prop.load(is);

                    

            } catch (MalformedURLException e1) {



                e1.printStackTrace();

                

            } catch (FileNotFoundException e) {



                e.printStackTrace();

                

            } catch (URISyntaxException e) {



                e.printStackTrace();

                

            } catch (IOException e) {

                

                e.printStackTrace();

            }

//DBCP      



            //

            

            ds = BasicDataSourceFactory.createDataSource(prop);



        }catch (Exception e) {



            throw new RuntimeException(e);



        }



    }

     

    //         



    public static Connection getConnection() throws SQLException{



        // DataSource                    

        return ds.getConnection();

        

    }   

   

}

最後に、データベース接続をJdbcUtilsクラスで取得する:Connection conn=JdbcUitls.getConnection();この接続を閉じるのに良い習慣を保つと、この接続は実質的に閉じられず、接続プールに回収され、DBPはダイナミックエージェントを使用して呼び出し者のConnectionを遮断する.close()メソッドは直接操作しなければなりません.