zoukankan      html  css  js  c++  java
  • 数据库的基本连接方法与连接池

        1、 因为在一般程况下数据库的都是一个实例访问既可以,因此这个时候可以把类设计成单例模式,例:

        public class DBUtil {

          //设计构造函数为私有,不能被其他类创建实例,同时也不能被继承

          private DBUtil(){}

          private static DBUtil instance = null;

          //提供一个外部创建的方法

          public synchronized static DBUtil getDBUtilInstance(){

            if(instance == null){

              instance = new DBUtil();

            }

          return instance;

          }

        }  

        2、 加载数据库驱动,填入数据库驱动名字

        Class.forName(""); 或者 DriverManager.registerDriver(new 一个驱动的名字);

        3、 获得Connection对象

        DriverManager.getConnection(URL , username , password);

    数据库连接池:主要有两种,一是DBCP另一个是C3P0

        DBCP: 需要导入两个jar包, commons-dbcp-1.2.2.jar 和 commons-pool.jar

        1. 需要两个成员变量 BasicDataSource 和 DataSourceConnectionFactory

        2. 创建BasicDataSource 对象,调用setUrl() setDriverClassName() setUsername() setPassword()方法设置jdbc相关信息

        3. 可以选择设置连接池配置,调用函数 setInitialSize(20) ---设置初始连接数  setMaxActive(100) ---最大的获取连接数 setMinIdle(10) ---最小可用的空闲连接数 setMaxIdle() ---最大可用空闲连接数

        4. 创建DataSourceConnectionFactory对象,并传入BasicDataSource 对象作为参数

        5. 通过DataSourceConnectionFactory对象调用createConnection方法返回Connection

        C3P0: 需要导入c3p0-0.9.1.jar包

        1. 需要一个成员变量ComboPooledDataSource

        2. 创建ComboPooledDataSource对象,调用setJdbcUrl() setUser() setPassword()方法设置jdbc相关信息

        3. 设置连接池,调用setInitialPoolSize(30) setMaxPoolSize(100) setMinPoolSize(10)

        4. 调用getConnection方法返回Connection对象

    *** DBCP的效率较高,但是C3P0却比较稳定。因此,C3P0却是被普遍使用。


  • 相关阅读:
    Scala中隐式转换(implicit conversion)的优先顺序
    protege4.0使用中的理论
    国外程序员整理的 C++ 资源大全
    什么是本体论?
    深入分析C++引用
    在基于对话框的MFC程序中,使程序在任务栏中不显示图标
    PhoneGap搭建运行环境(3.2版本)
    [JS代码]如何判断ipad或者iphone是否为横屏或者竖屏
    windwos iis 7.5 使用html 报405错误
    NodeJs 开源
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2404250.html
Copyright © 2011-2022 走看看