DBUtils之连接池

为减小系统对数据库的获取连接和关闭连接的开销,连接池便是一个不错的选择

  • 将DataSource封装成一个工具类,使用时调用即可
package com.kong.JDBCUtils;

import org.apache.commons.dbcp.BasicDataSource;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 使用了properties+连接池;
 * 推荐使用此类获取dataSource方法
 */
public class JDBCUtils {
    private static BasicDataSource basicDataSource = new BasicDataSource();
    private static String driverName;
    private static String url;
    private static String username;
    private static String password;
    static{
        InputStream inputStream = JDBCUtils.class.getClassLoader().getResourceAsStream("database.properties");
        Properties properties = new Properties();
        try {
            properties.load(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e+"读取配置文件失败");
        }
        driverName = properties.getProperty("driver");
        url = properties.getProperty("url");
        username = properties.getProperty("name");
        password = properties.getProperty("password");
        //设置DataSource基本信息
        basicDataSource.setDriverClassName(driverName);
        basicDataSource.setUrl(url);
        basicDataSource.setUsername(username);
        basicDataSource.setPassword(password);
        //设置DataSource其他连接信息
        basicDataSource.setInitialSize(10);//初始化的连接数
        basicDataSource.setMaxActive(8);//最大的连接数
        basicDataSource.setMaxIdle(5);//最大空闲数
        basicDataSource.setMinIdle(1);//最小空闲数
    }

    public static DataSource getbasicDataSource(){
        return basicDataSource;
    }
}
  • 调用
public class DBUtilsLinkDemo {
    public static void main(String[] args) throws IOException {

        try {
            Connection connection = JDBCUtils.getbasicDataSource().getConnection();
            System.out.println(connection);
        } catch (SQLException e) {
            throw new RuntimeException(e+"database connect fail");
        }


    }

}
  • 结果

^_^

猜你喜欢

转载自www.cnblogs.com/kongieg/p/10069797.html