zoukankan      html  css  js  c++  java
  • 主流的数据库连接池技术

    使用数据库连接池,其实就是让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 完成数据库操作:

  • 相关阅读:
    NoSQL数据库:Java开源项目Neo4j简介
    EPOLL和IOCP比较
    CString&CStringA&CStringW之间的相互转换
    CString和CStringA之间的转换
    Windows IOCP模型与Linux EPOLL模块之比较
    OCP-1Z0-053-V13.02-708题
    OCP-1Z0-053-V13.02-709题
    OCP-1Z0-053-V12.02-342题
    OCP-1Z0-053-V12.02-341题
    OCP-1Z0-053-V13.02-706题
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12877235.html
Copyright © 2011-2022 走看看