package com.itheima.utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/**
* 用于获取连接
* @author wangli
*
*/
public class DbcpUtil {
private static DataSource ds ;
static{
try {
InputStream is =DbcpUtil.class.getClassLoader().getResourceAsStream("dbcpcfg.properties");
Properties p = new Properties();
p.load(is);
ds = BasicDataSourceFactory.createDataSource(p);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 用于从池中获取连接
* @return
*/
public static synchronized Connection getConneciton(){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
//关闭资源
public static void release(ResultSet rs,Statement st,Connection con ){
try {
if(rs!=null){
rs.close();
rs=null;//目的是让回收器立即进行垃圾回收
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(st!=null){
st.close();
st=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(con!=null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
配置文件信息
#u8FDEu63A5u8BBEu7F6E
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/day16
username=root
password=root
#<!-- u521Du59CBu5316u8FDEu63A5 -->
initialSize=10
#u6700u5927u8FDEu63A5u6570u91CF
maxActive=50
#<!-- u6700u5927u7A7Au95F2u8FDEu63A5 -->
maxIdle=20
#<!-- u6700u5C0Fu7A7Au95F2u8FDEu63A5 -->
minIdle=5
#<!-- u8D85u65F6u7B49u5F85u65F6u95F4u4EE5u6BEBu79D2u4E3Au5355u4F4D 6000u6BEBu79D2/1000u7B49u4E8E60u79D2 -->
maxWait=60000
#JDBCu9A71u52A8u5EFAu7ACBu8FDEu63A5u65F6u9644u5E26u7684u8FDEu63A5u5C5Eu6027u5C5Eu6027u7684u683Cu5F0Fu5FC5u987Bu4E3Au8FD9u6837uFF1A[u5C5Eu6027u540D=property;]
#u6CE8u610FuFF1A"user" u4E0E "password" u4E24u4E2Au5C5Eu6027u4F1Au88ABu660Eu786Eu5730u4F20u9012uFF0Cu56E0u6B64u8FD9u91CCu4E0Du9700u8981u5305u542Bu4ED6u4EECu3002
connectionProperties=useUnicode=true;characterEncoding=gbk
#u6307u5B9Au7531u8FDEu63A5u6C60u6240u521Bu5EFAu7684u8FDEu63A5u7684u81EAu52A8u63D0u4EA4uFF08auto-commituFF09u72B6u6001u3002
defaultAutoCommit=true
#driver default u6307u5B9Au7531u8FDEu63A5u6C60u6240u521Bu5EFAu7684u8FDEu63A5u7684u53EAu8BFBuFF08read-onlyuFF09u72B6u6001u3002
#u5982u679Cu6CA1u6709u8BBEu7F6Eu8BE5u503CuFF0Cu5219u201CsetReadOnlyu201Du65B9u6CD5u5C06u4E0Du88ABu8C03u7528u3002uFF08u67D0u4E9Bu9A71u52A8u5E76u4E0Du652Fu6301u53EAu8BFBu6A21u5F0FuFF0Cu5982uFF1AInformixuFF09
defaultReadOnly=
#driver default u6307u5B9Au7531u8FDEu63A5u6C60u6240u521Bu5EFAu7684u8FDEu63A5u7684u4E8Bu52A1u7EA7u522BuFF08TransactionIsolationuFF09u3002
#u53EFu7528u503Cu4E3Au4E0Bu5217u4E4Bu4E00uFF1AuFF08u8BE6u60C5u53EFu89C1javadocu3002uFF09NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED