数据库的基本连接方法与连接池

    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却是被普遍使用。


posted on 2012-03-18 01:21  lee0oo0  阅读(446)  评论(0编辑  收藏  举报