C3P0,开源java连接池,JDBC连接池,数据库连接池,DataSources

C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

C3P0配置:

首先肯定是要下载个包的

c3p0-0.9.1-pre11.bin.zip

解压后把bin下的c3p0-0.9.1-pre11.jar包拷贝到项目下的lib里

接下来新建个连接文件

package dbc;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class ConnectionFactory {

    private ConnectionFactory(){
    }    

    private static ComboPooledDataSource ds = null;

    static {
        try {
            // Logger log = Logger.getLogger("com.mchange"); // 日志
              // log.setLevel(Level.WARNING);
            ds = new ComboPooledDataSource();
            // 设置JDBC的Driver类
              ds.setDriverClass("oracle.jdbc.driver.OracleDriver");  // 参数由 Config 类根据配置文件读取
              // 设置JDBC的URL
            ds.setJdbcUrl("jdbc:oracle:thin:@192.168.1.134:1521:zhpt");
            // 设置数据库的登录用户名
              ds.setUser("scott");
            // 设置数据库的登录用户密码
              ds.setPassword("tiger");
            // 设置连接池的最大连接数
              ds.setMaxPoolSize(200);
            // 设置连接池的最小连接数
              ds.setMinPoolSize(20);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }
  
    public static synchronized Connection getConnection() {
        Connection con = null;
        try {
            con = ds.getConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        return con;
    }
    // C3P0 end
}

 再建个文件用来测试

package dbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class dbctest {
  public static void main(String[] args) {
  boolean flag = false;
  // 在此处成具体的数据库验证

  // 声明一个数据库操作对象
  PreparedStatement pstmt = null;
  // 声明一个结果集对象
  ResultSet rs = null;
  // 声明一个SQL变量,用于保存SQL语句
  String sql = null;
  // DataBaseConnection为具体的数据库连接及关闭操作类
  Connection con = null;
  // 连接数据库
  con = ConnectionFactory.getConnection();

  // 编写SQL语句
  sql = "SELECT u_name,u_password FROM nwvideo.n_user WHERE u_name=? and u_password=?";
  try {
   // 实例化数据库操作对象
   pstmt = con.prepareStatement(sql);

   System.out.println("操作对象已被实例化");

   // 设置pstmt的内容,是按ID和密码验证
   pstmt.setString(1, "limeng");
   pstmt.setString(2, "limeng");

   System.out.println("获得username,password");

   // 查询记录
   rs = pstmt.executeQuery();
   System.out.println("执行查询完毕");
   // 判断是否有记录
   if (rs.next()) {
    // 如果有记录,则执行此段代码
    // 用户是合法的,可以登陆
    flag = true;

    System.out.println("用户合法");
   }
   // 依次关闭

   rs.close();
   pstmt.close();

  } catch (Exception e) {
   System.out.println(e);
  } finally {
   // 最后一定要保证数据库已被关闭
   try {
    con.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
}

 这样就这个C3P0,开源java连接池就配置成功了

使用这个类需要注意下mysql 8小时的问题

 

使用代码里的主要代码就是这句

con = ConnectionFactory.getConnection();

用完记得关闭

 

c3p0-0.9.1-pre11.bin.zip.swf

 

黑色头发  http://heisetoufa.iteye.com

你可能感兴趣的:(java,oracle,sql,Hibernate,jdbc)