JAVA 自定义连接池

public class DBUtils {
     
	//1.帮助类---DataSource
    private DataSource dataSource =null;
    //2.通过构造函 数读取配置文件并实例化DataSource
    public DBUtils() {
     
    	//2-1、当前配置文件
    InputStream inputStream =	DBUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
    
    //把配置文件中的内容存放在容器中
    Properties properties =new Properties();
    
    try {
     
		properties.load(inputStream);
	} catch (IOException e) {
     
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
    //2-2.通过工厂模式、实例化DateSource
    try {
     
		dataSource =BasicDataSourceFactory.createDataSource(properties);
	} catch (Exception e) {
     
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
    
    }
    //3、向外界、通过获取连接的方法
    public Connection getConn() {
     
    	Connection connection =null;
    	try {
     
			connection =dataSource.getConnection();
		} catch (SQLException e) {
     
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return connection;
    }
    //4.关闭连接
    public void close(Connection connection,Statement statement,ResultSet resultSet) {
     
    	try {
     
			if(resultSet !=null)resultSet.close();
			if(statement !=null)statement.close();
			if(connection !=null)connection.close();
		} catch (SQLException e) {
     
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public static void main(String[] args) {
     
		DBUtils dbutils =new DBUtils();
		System.out.println(dbutils.getConn());
	}
    

dbcpconfig.properties 配置文件

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3305/j2011_01?useUnicode=true&characterEncoding=utf-8;
username=root
password=123456

#<!-- 初始化连接 -->
initialSize=10

#最大连接数量
maxActive=50

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60-->
maxWait=60000


#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user""password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=gb2312

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
#oracle只支持READ_COMMITTED(默认),SERIALIZABLE
defaultTransactionIsolation=REPEATABLE_READ

你可能感兴趣的:(java)