一直有个想法,好好研究下hibernate的连接池.最近研究了下.很多问题不明白.请各位前辈回答的的这些疑问,主要针对C3P0<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">120</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="hibernate.c3p0.acquire_increment">2</property>1.上面的配置文件每条语句配置的数都是什么意思?一般情况下配置多少合适?
2.这个数据库连接池只是在B/S下才用么?为什么我总是看到连接池和tomcat的很多文章?没有tomcat就不能用连接池了么?
3.连接池为什么就能使效率提高很多?我拿一个Connection用完就close.和我不用连接池是不是效果是一样的?
4.在程序里如何获取当前连接数.最大连接数等参数呢?我们一般在程序里用监视连接池的动态么?还是把上面的配置文件一写好就不管了呢?
5.连接池何时被创建?何时销毁?连接池中的链接何时创建?何时销毁?一开始连接池中创建多少个Connection?当一个请求拿到一个Connection用完Close以后这个Connection状态是怎样的?在内存中的状态是怎样的?
6.大家对hibernate或者数据库连接池有什么深的体会的都来谈谈,希望能在这把数据库连接池彻底搞懂!结贴时我会总结大家的答案或者体会.写一个关于数据库连接池总结性的知识汇总.希望对大家能有所帮助.

解决方案 »

  1.   

    1. prop1定义池提供类
       prop2池最大链接数
       prop3池最小链接数
       prop4超时时间
       prop5可以被缓存的PreparedStatement最大数目
       prop6检查空闲链接的间隔
       prop7当连接池里面的连接用完的时候,C3P0一下获取的新的连接数
    2. B/S C/S都可用, Web容器里配置池比普通application麻烦些. 
    3. 创建数据库链接开销比较大. 用pool来缓存链接,用时直接拿来用, 用完还回去. 几乎没有开销.后面的不回答了, google去吧
      

  2.   

    up up up up up up 
      

  3.   

    查hibernate的帮助文档最好了,里面最详细,最准确了
    英文的不好看,可以找中文的看,很容易找到
      

  4.   

    建议查阅文档,里面有一些examples可以参考的。
      

  5.   

    谁跟你说连接池只能用在 B/S 中啊?你一个 main 方法的程序也能使用 c3p0 之类开源的连接池。
      

  6.   

    我估计是你为什么会这么认为,那是因为只会在 Spring, Hibernate 下进行配置,而不是单独使用。
      

  7.   

    加一条
    <property name="hibernate.c3p0.validate">true</property>
    这个应该是对当前连接可不可用进行判断的吧
      

  8.   

    就一个问题回答
    一个数据库连接,创建的时候是要在内存中写信息的,这些信息包括用户名,密码,URL等等等等,一close,直接就把内存中的信息释放了,下次连接还要创建,是不是有点多余?因为连接信息肯定是固定不变的。
    连接池在内存开辟一个空间保存这些信息,下次使用直接引用,是不是节省了时间?
    通俗易懂,履行你的承诺,给一部分分吧。
      

  9.   

    http://blog.chinaunix.net/u/21790/showart_170245.html
    -
    http://blog.csdn.net/joyssh/archive/2008/07/13/2646276.aspx
     楼主 参考看看。其实Java的每一个细小的模块和功能都值得好好是深入的研究的。
    Java实在是太强大了。
      

  10.   

    LZ这种积极学习的精神让人佩服,
    可以本人并不能解决你的问题,Hibernate最近1年多都没用了,
    期待其它高手解答你所有问题
      

  11.   

    那个配置一看就不是 Hibernate 的连接池,明摆着是 c3p0 连接池。