JDBC连接池案例

雨点打透心脏的1/2处 2021-12-15 02:11 457阅读 0赞

连接池概念:
其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
C3P0:数据库连接池技术
步骤

  1. 导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,
    不要忘记导入数据库驱动jar包
  2. 定义配置文件:
    名称: c3p0.properties 或者 c3p0-config.xml
    路径:直接将文件放在src目录下即可。
  3. 创建核心对象 数据库连接池对象 ComboPooledDataSource
  4. 获取连接: getConnection

    • 代码:
      //1.创建数据库连接池对象
      DataSource ds = new ComboPooledDataSource();
      //2. 获取连接对象
      Connection conn = ds.getConnection();

Druid:数据库连接池实现技术,由阿里巴巴提供的

  1. 步骤:
  2. 导入jar包 druid-1.0.9.jar
  3. 定义配置文件:

    • 是properties形式的
    • 可以叫任意名称,可以放在任意目录下
  4. 加载配置文件。Properties

  5. 获取数据库连接池对象:通过工厂来来获取 DruidDataSourceFactory
  6. 获取连接:getConnection

    • 代码:
      //3.加载配置文件
      Properties pro = new Properties();
      InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream(“druid.properties”);
      pro.load(is);
      //4.获取连接池对象
      DataSource ds = DruidDataSourceFactory.createDataSource(pro);
      //5.获取连接
      Connection conn = ds.getConnection();
      JBUtils:

      public class JDBCUtils {

      1. //1.定义成员变量 DataSource
      2. private static DataSource ds ;
      3. static{
      4. try {
      5. //1.加载配置文件
      6. Properties pro = new Properties();
      7. pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
      8. //2.获取DataSource
      9. ds = DruidDataSourceFactory.createDataSource(pro);
      10. } catch (IOException e) {
      11. e.printStackTrace();
      12. } catch (Exception e) {
      13. e.printStackTrace();
      14. }
      15. }
      16. /**
      17. * 获取连接
      18. */
      19. public static Connection getConnection() throws SQLException {
      20. return ds.getConnection();
      21. }
      22. /**
      23. * 释放资源
      24. */
      25. public static void close(Statement stmt,Connection conn){
      26. /* if(stmt != null){
      27. try {
      28. stmt.close();
      29. } catch (SQLException e) {
      30. e.printStackTrace();
      31. }
      32. }
      33. if(conn != null){
      34. try {
      35. conn.close();//归还连接
      36. } catch (SQLException e) {
      37. e.printStackTrace();
      38. }
      39. }*/
      40. close(null,stmt,conn);
      41. }
  1. public static void close(ResultSet rs , Statement stmt, Connection conn){
  2. if(rs != null){
  3. try {
  4. rs.close();
  5. } catch (SQLException e) {
  6. e.printStackTrace();
  7. }
  8. }
  9. if(stmt != null){
  10. try {
  11. stmt.close();
  12. } catch (SQLException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. if(conn != null){
  17. try {
  18. conn.close();//归还连接
  19. } catch (SQLException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. }
  24. /**
  25. * 获取连接池方法
  26. */
  27. public static DataSource getDataSource(){
  28. return ds;
  29. }
  30. }

发表评论

表情:
评论列表 (有 0 条评论,457人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC连接

    一、常用连接池: (1)C3P0(2)Druid(德鲁伊)(3)DBCP(4)JNDI 二、Druid(德鲁伊):   1、配置说明:    (1)导入jar包:dru

    相关 JDBC连接

    1、分析      实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况下我们采用连接池技术来共享连接Connection。

    相关 jdbc连接

    一、连接池 1.为什么要用连接池 与数据库的每个连接的建立和关闭,均会在数据库服务器端造成非常大的资源开销。 作为传统的数据库访问方式是: 一次数据库访问对应一个物

    相关 JDBC连接案例

    连接池概念: 其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户