JDBCデータベース接続プールDBPP構成
7314 ワード
JDK Complianceバージョン5.0、必要なJarはcommons-dbcp-1.3である.JArとcommons-pool.jar.(Apache公式サイトでダウンロード可能).
まず、srcの下にdbcpを新規作成する必要がある.propertiesプロパティファイル:
次にConnectionを管理するクラスが必要です.例:JdbcUtils.java
最後に、データベース接続をJdbcUtilsクラスで取得する:Connection conn=JdbcUitls.getConnection();この接続を閉じるのに良い習慣を保つと、この接続は実質的に閉じられず、接続プールに回収され、DBPはダイナミックエージェントを使用して呼び出し者のConnectionを遮断する.close()メソッドは直接操作しなければなりません.
まず、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()メソッドは直接操作しなければなりません.