首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java应用程序中使用连接池的优缺点是什么?

在Java应用程序中使用连接池的优缺点是什么?
EN

Stack Overflow用户
提问于 2012-03-18 10:21:59
回答 2查看 2.6K关注 0票数 2

我们正在开发一个Java SE应用程序,我正在使用Hibernate与数据库通信。我的数据库是Oracle 11g Express Edition。到目前为止,我还没有在应用程序中使用连接池。但是我以前使用过c3p0连接池,但是我从来没有真正对它有一个很好的理解。

在Java应用程序中使用c3p0的优缺点是什么?我可以理解当涉及到Java应用程序时它是有用的,但是Java呢?

这是我对Hibernate的配置。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<!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">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
  <property name="hibernate.connection.username">EP</property>
  <property name="hibernate.connection.password">123</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="hibernate.default_schema">EP</property>
  <property name="show_sql">true</property>

  <property name="hibernate.c3p0.min_size">5</property>
  <property name="hibernate.c3p0.max_size">20</property>
  <property name="hibernate.c3p0.timeout">300</property>
  <property name="hibernate.c3p0.max_statements">50</property>
  <property name="hibernate.c3p0.idle_test_period">3000</property>

  <mapping class="app.model.User"></mapping>
</session-factory>
</hibernate-configuration>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-18 10:42:17

当涉及到Java应用程序时,我可以理解它的用处,但是

SE?

在Java SE中使用连接池的原因与在Java EE中使用连接池的原因基本相同。打开和关闭JDBC连接的开销相对较大,并且连接池允许您重用应用程序以前打开的连接。

(显然,如果Java SE应用程序只需要使用一个(或少量) JDBC连接,那么使用连接池是没有好处的。但这同样适用于具有相同特征的Java应用程序。)

是的,但是Java应用程序有必要同时拥有多个连接吗?

1)这完全取决于应用程序及其功能。

2)连接池对于需要串行多个连接的应用程序也很有用……但一次只能有一个连接。例如,如果连接是在第三方库中创建和关闭的。

票数 5
EN

Stack Overflow用户

发布于 2015-06-11 22:01:43

有没有人意识到,所有Java应用程序都运行在相同的Java SE JVM和一些附加库上?这就是说,Java EE应用程序需要库来使其作为Java SE应用程序工作,或者换句话说:所有EE容器都是Java SE应用程序。

在已经注意到连接池与SE或EE无关之前,它更多地基于应用程序应该执行的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9755481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档