java程序本身可以通过Connection类获得连接,但是为什么weblogic或者tomcat里面还需要配置练级池呢?这种通过配置连接池获得的连接和通过Connection类获得的连接有什么不同?各有什么优缺点呢?

解决方案 »

  1.   

    连接池的作用就是提高性能的, 因为通过Connection的方式去获取链接是很耗时耗资源的,关闭链接也是耗时耗资源的, 而连接池则是 开始就打开部分的链接,放在一个集合中, 当谁需要链接时 不需要从数据库再获取而是直接到集合里面取, 而通过连接池拿的Connection 时 你close 的时候 并不是真正的关闭了物理链接,而是把cONNECTION 又放回集合中,这样反复使用 达到提高效率的作用!
      

  2.   

    weblogic或者tomcat的连接池比自己写的要好用
      

  3.   

    开源的连接池,可以用proxool.目前性能比较好的.
      

  4.   

    我觉得最大的区别是:java里的connection需要手动close。连接池里是自动close的。
      

  5.   

    配置的连接池是通过配置在 JNDI 上的 javax.sql.DataSource 对象获得的,根据 JDBC 规范,应该首先从 DataSource 中获得 Connection 对象,而不是从 DriverManager 中获得对象。原因:1,DataSource 带有连接池的实现;
    2,DataSource 可以通过 JNDI 配置,数据库任何参数的更改都可以在 JNDI 中进行配置,提高了程序的可配置性;
    3,DataSource 所产生的 Connection 对象可以用于分布式事务详情参见 javax.sql.DataSource 接口的 API DOC。