数据库连接池配置方法的选择?

tang_123_ 2011-01-08 10:54:33
数据库连接池的配置有多种方法:dbcp、c3p0、jndi+tomcat连接池、jndi+dbcp......
在hibernate和spring中的配置也不相同,所以我就搞懵了。
好像不用jndi也能实现配置连接池......
请各位给分析一下各自的功能,多谢了!
...全文
133 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kky2010_110 2011-01-10
  • 打赏
  • 举报
回复
自定义连接池,自己写个呗!
Inhibitory 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 tang_123_ 的回复:]
数据库连接池的配置有多种方法:dbcp、c3p0、jndi+tomcat连接池、jndi+dbcp......
在hibernate和spring中的配置也不相同,所以我就搞懵了。
好像不用jndi也能实现配置连接池......
请各位给分析一下各自的功能,多谢了!
[/Quote]
Hibernate + c3p0,很简单的配置,下面是我使用过的例子
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mlm?useUnicode=true&characterEncoding=UTF-8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<!--指定连接的语言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property> <!--是否将运行期生成的SQL输出到日志以供调试-->
<property name="hibernate.hbm2ddl.auto">validate</property>

<!-- C3P0连接池设定-->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.min_size">5</property><!--连接池的最小连接数-->
<property name="hibernate.c3p0.max_size">30</property><!--最大连接数-->
<property name="hibernate.c3p0.timeout">1800</property><!--连接超时时间-->
<property name="hibernate.c3p0.max_statements">100</property><!--statemnets缓存大小-->
<!--每隔多少秒检测连接是否可正常使用 -->
<!--为hibernate配置连接池,推荐用c3p0,然后配置c3p0的反空闲设置idle_test_period,-->
<!--(只要小于MySQL的wait timeout即可,这句话后经证实不一定)。 -->
<property name="hibernate.c3p0.idle_test_period">121</property>
<!--当池中的连接耗尽的时候,一次性增加的连接数量,默认为3-->
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.validate">true</property>

<!--映射资源-->
<mapping resource="hb/domain/Comment.hbm.xml" />

<!-- Survey -->
<mapping resource="hb/domain/survey/SurveyQuestion.hbm.xml" />
</session-factory>
</hibernate-configuration>

tang_123_ 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaoye2892 的回复:]
当然可以不用jndi也可以配置连接池了
spring的配置中也是配dbcp或者c3po之类的连接池
只是实习方式的不同
[/Quote]
如果用hibernate实现,是不是需要用jndi呢?
tang_123_ 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java_cxrs 的回复:]
spring 不是已经有连接池了么 在那里配就好啊
[/Quote]
是不是使用spring的连接池,就不需要jndi了。
不善^ 2011-01-09
  • 打赏
  • 举报
回复
spring 不是已经有连接池了么 在那里配就好啊
whut_lcy 2011-01-09
  • 打赏
  • 举报
回复
c3p0吧,比较成书 。apache的dbcp貌似也不错
wangshiyang 2011-01-09
  • 打赏
  • 举报
回复
这个说着真不好说! 其实数据库配置也就那几个步骤,只不过方式不一样,你去看看写法就可以了!
哒哒路 2011-01-09
  • 打赏
  • 举报
回复
建议使用spring的连接池
happyfmy 2011-01-09
  • 打赏
  • 举报
回复
当然可以不用jndi也可以配置连接池了
spring的配置中也是配dbcp或者c3po之类的连接池
只是实习方式的不同
jiemsjzkdy 2011-01-09
  • 打赏
  • 举报
回复
快学Spring了,过来帮顶一下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧