主流的数据库连接池技术

使用数据库连接池,其实就是让QueryRunner对象在创建时得到一个数据源(数据库连接池),使用不同的数据库连接池,只需要为QueryRunner提供其自身的数据源即可!也就是DataSource

那么一旦QueryRunner在创建时有了数据源,那么在执行sql,操作数据库时,就会自动从数据源中获取连接对象Connection

1、dbcp连接池

apache出品的连接池,apache出品,必属精品。

 

 

 

缺一不可

 

之前的数据库连接需要把数据库连接的选项配置给连接对象。但是使用数据库连接池,只需要为池子配置连接选项即可,那么池子内部的连接池对象就会自动携带这些连接信息!

导入dbcp连接池的配置文件:

将dbcp.properties文件导入到项目工程的src文件夹中:

 

 

 

打开配置文件,修改配置信息:

切记配置信息的关键字不能错,不要修改,只改值,不要改关键字!!!

 

 

 

构建dbcp的工具类,来为QueryRunner提供dbcp的数据源!这种方式简单,因为可以自动将配置文件中的配置信息,设置给数据源,也就是连接池对象!

package com.offcn.dbcp;

 

import java.io.FileInputStream;

import java.io.IOException;

import java.util.Properties;

 

import javax.sql.DataSource;

 

import org.apache.commons.dbcp.BasicDataSourceFactory;

 

/**

 * 此类的作用就是为QueryRunner提供dbcp连接池数据源的

 * @author Administrator

 *

 */

public class DBCPUtils {

    private static DataSource dataSource = null;

   

    //初始化数据源对象

    static {

        //构建配置文件

        Properties properties = new Properties();

        FileInputStream fStream = null;

        try {

            //通过输入流读取dbcp连接池的配置文件

            fStream = new FileInputStream("src/dbcp.properties");

            //将通过流读取到的连接池配置信息加载到属性文件对象中

            properties.load(fStream);

            //使用dbcp特定数据源生成的方法来创建dbcp连接池的数据源对象

            dataSource = BasicDataSourceFactory.createDataSource(properties);

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally {

            if (fStream != null) {

                try {

                    fStream.close();

                } catch (IOException e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

            }

        }

    }

   

    //返回数据源的方法

    public static DataSource getDataSource() {

        return dataSource;

    }

}

当然也可以手动创建数据源,手动为数据源设置配置信息,这样就比较麻烦:

BasicDataSource这个类就是dbcp的数据源类,通过set+对应配置信息的方法,即可完成对数据源的信息配置!

使用dbcp+dbutils 完成数据库操作的代码:

 

 

 

 

2、druid连接池

阿里巴巴出品,用户群体少

导包:

记住,add to build path

 

将druid的配置文件druid.properties导入到src目录下:

打开配置配置文件,修改信息:

 

 

 

书写druid的工具类,为QueryRunner提供数据源

package com.offcn.druid;

 

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

 

import javax.sql.DataSource;

 

import com.alibaba.druid.pool.DruidDataSourceFactory;

 

/**

 * 此类专门为QueryRunner创建提供数据源

 * @author Administrator

 *

 */

public class DruidUtils {

    //声明数据源

    private static DataSource dataSource = null;

   

    //加载数据源

    static {

        //通过类加载器,获取输入流,可以直接找到src下的文件,所以路径直接写文件名即可

        InputStream iStream = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");

        //创建属性文件对象

        Properties properties = new Properties();

        try {

            //加载流中的数据

            properties.load(iStream);

            //使用druid工具包中的数据源生成方法来为数据源赋值

            dataSource = DruidDataSourceFactory.createDataSource(properties);

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally {

            if (iStream != null) {

                try {

                    iStream.close();

                } catch (IOException e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

            }

        }

    }

   

    //返回数据源的方法

    public static DataSource getDataSource() {

        return dataSource;

    }

}

使用druid + dbutils完成数据库操作

 

 

 

3、c3p0连接池

 

这个极其推荐使用,用户群体极多,因为其简单!!!

导包:

add to build path

 

 

导入c3p0的配置文件:

(1) 、c3p0的配置文件,名称一定要命名为c3p0.properties

(2) 、c3p0的配置文件,一定要导入到src目录下

如果以上两个条件都满足,那么就会自动加载配置文件!!!!!!!就是c3p0的数据源自动就有了配置文件中的信息!!!

 

 

使用c3p0 + dbutils 完成数据库操作:

 

posted @ 2020-05-12 16:55  master_hxh  阅读(708)  评论(0编辑  收藏  举报