使用数据库连接池连接数据库

  java中连接到数据库可以通过JDBC连接,也可以通过数据库连接池连接数据库,连接池主要在在程序启动的时候建立多个连接,当程序使用的时候就从池中获取连接,当程序把数据库连接使用结束之后,将连接归还给池。
常见连接池

dbcp , apache的官方实现,早期项目中大多数项目使用的连接池 http://commons.apache.org/proper/commons-dbcp/

Druid , alibaba的实现, 效率上比dbcp要好一些 https://github.com/alibaba/druid

以Druid连接池为例

使用数据库连接池连接数据库时需要先写配置文件
1. 在路径中创建database.properties文件 内容

maxActive 最大活跃数

initialSize 初始连接数

minIdle 最小空闲数

druid.url=jdbc:mysql://127.0.0.1:3306/talk_sys?serverTimezone=Asia/Shanghai
druid.username=root
druid.password=root
druid.maxActive=20
druid.initialSize=1
druid.minIdle=1

2.java中代码实现

    /**
     * 配置文件路径
     */
    private static final String CONFIG_FILE_PATH = "/datasource.properties";
    
    /**
     * 设置一个全局数据源对象
     */
    private static DruidDataSource dataSource;
    
    /**
     * 加载配置,为了同一时刻只有一个方法调用
     */
    private synchronized static void loadConfig() {
        // 配置文件输入流
        InputStream configStream = DbHelper.class.getResourceAsStream(CONFIG_FILE_PATH);
        if(null!=configStream) {
            Properties config = new Properties();
            try {
                config.load(configStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
            dataSource = new DruidDataSource();
            dataSource.setConnectProperties(config);
        }
    }
    
    /** 连接获取方法
     * @return
     */
    public static Connection getConn() {
        if(null==dataSource) {
            loadConfig();
        }
        try {
              return dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

完成如上操作后即可哦通过getConn()方法来获得数据库连接。

你可能感兴趣的:(使用数据库连接池连接数据库)