`
yjandx3543
  • 浏览: 49060 次
  • 性别: Icon_minigender_1
  • 来自: 隐居山林
社区版块
存档分类
最新评论

c3p0 JDBC连接池

阅读更多
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里

接下来新建个连接文件

Java代码
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   
}  


再建个文件用来测试

Java代码
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连接池就配置成功了

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

con = ConnectionFactory.getConnection();

用完记得关闭

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics