JAVA 连接池

来源:互联网 发布:淘宝差评师曝光平台 编辑:程序博客网 时间:2024/06/03 13:26

连接池

________________________________________________________________________________


    1并发连接少的时候,重用连接对象,性能好!
    2并发连接多的时候,可以控制总连接数,保护数据库,
     避免连接过载。   
    3在并发连接多的应用中,必须使用连接池!
    4连接池的管理参数,要根据实际情况调整!
    5从连接池中获得的连接,当关闭时候,只是将连接
     归还给连接池,并不是真的断开与数据库的连接。

 

如何使用连接池:
   1 JDBC 定义了连接池接口 javax.sql.DataSource 重要的方法只有一个getConnection()获取数据库连接
   2 由数据库厂商提供 DataSource接口的实现很少在使用这个实现类!
   3 “一般”都采用 第三方 提供的 DataSource实现类常用开源的 DataSource实现:
     1) Apache DBCP
     2) c3p0 在商业软件中使用很多!
   4 DBCP的使用
     A 导入包 包含DataSource实现类
     B 创建 DataSource 的实现类对象——new BasicDataSource(),BasicDataSource实现

   了DataSource接口,同时也提供了getConnection()方法,以及封装了数据库连接池的策略管理算法。
     C 设置数据库连接参数(driver, url, user, pwd)
     D 设置管理策略参数(可以不设,有默认值)设置方法 setXXX,在管理策略中可以设置超时时间!
     E 调用 getConnection()方法,获得被连接池管理的数据库连接。
       1)是从连接池中获得的连接!
          A)可以是空闲的连接(连接池空闲)
          B) 是新创建的连接  (连接池比较慢)
          C)同步等待(卡了)!(连接池满了!)
             两种情况:有连接归还时候,返回连接;
                      超时了,得到SQL异常!
       2) 当关闭(.close())这个这个连接时候
           连接不会立即断开,是连接对象被设置为空闲
           归还到了连接池.
     
   注意:数据库连接池的策略参数是专用方法! 不同的
         连接池不一样!方法名都不一样,功能类似
         DBCP
         C3p0
 
         getConntion方法是一样的!
 
 
   连接池的使用:
      1) 导入jar包
      2) 创建 DataSource实现类的实例
      3) 设置数据库基本连接参数(注意:方法名不同)
          driver
          url
          user
          pwd
       4)设置 连接池管理策略参数(可选参数)
          根据实际业务需要设置,具体方法参考手册
      5)getConnection() 获得连接。使用连接访问DB
      6)关闭连接(归还连接到连接池!)
 
      连接池:DataSource 接口可以翻译为 "数据源"
             "数据源" == 连接池 == 数据源连接池
 
   何时必须使用连接池:

  软件中有多个并发线程同时
      访问了数据库,这时候必须使用连接池!
      并发访问使用 DataSource
      单线程访问使用 DriverManager

0 0