【高手指教】请问数据库连接池技术中dbcp、c3p0、jndi三者的联系、应用范围以及优缺点是什么?

北欧Leo 2008-08-29 10:46:43
RT,请高手指教!
...全文
966 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
caremaomao 2011-09-15
  • 打赏
  • 举报
回复
NICE
lulu3677 2011-05-06
  • 打赏
  • 举报
回复
所地是累
fishgird 2011-02-23
  • 打赏
  • 举报
回复
是不是回复才能看
w1100n 2009-08-10
  • 打赏
  • 举报
回复
quanwsxa 2009-03-26
  • 打赏
  • 举报
回复
还是不清楚
qiushigong 2009-02-10
  • 打赏
  • 举报
回复
楼上已把基本特点说清楚了,不过连接池的话c3p0较DBCP的性能要好
luallen 2009-02-10
  • 打赏
  • 举报
回复
dbcp、c3p0 是两个数据库连接池
这两个连接池都是Hibernate建议使用的连接池

DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP。

C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

JNDI与JDBC:
  JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个纪录,同时返回数据库连接建立所必须的信息。

参考资料:
  http://java.sun.com/products/jndi/examples.html
  http://java.sun.com/products/jndi/serviceproviders.html
常用的JNDI操作:
  void bind(String sName,Object object);――绑定:把名称同对象关联的过程
  void rebind(String sName,Object object);――重新绑定:用来把对象同一个已经存在的名称重新绑定
  void unbind(String sName);――释放:用来把对象从目录中释放出来
  void lookup(String sName,Object object);――查找:返回目录总的一个对象
  void rename(String sOldName,String sNewName);――重命名:用来修改对象名称绑定的名称
  NamingEnumeration listBinding(String sName);――清单:返回绑定在特定上下文中对象的清单列表
  NamingEnumeration list(String sName);
  代码示例:重新得到了名称、类名和绑定对象。
  NamingEnumeration namEnumList = ctxt.listBinding("cntxtName");
  ...
  while ( namEnumList.hasMore() ) {
  Binding bnd = (Binding) namEnumList.next();
  String sObjName = bnd.getName();
  String sClassName = bnd.getClassName();
  SomeObject objLocal = (SomeObject) bnd.getObject();
  }

szuosky 2009-02-06
  • 打赏
  • 举报
回复
怎么没人解答呢
cjh1123 2008-10-23
  • 打赏
  • 举报
回复
顶 关注
bobolnear 2008-10-23
  • 打赏
  • 举报
回复
和你一起注视着。
lihan6415151528 2008-10-23
  • 打赏
  • 举报
回复
uupp
hytangzhang 2008-10-23
  • 打赏
  • 举报
回复
up
ONLYBLUEMOON 2008-10-22
  • 打赏
  • 举报
回复
up
hjysuccess 2008-10-22
  • 打赏
  • 举报
回复
up
ONLYBLUEMOON 2008-10-21
  • 打赏
  • 举报
回复
boreds 2008-09-19
  • 打赏
  • 举报
回复
up 关注中
zhao_tk 2008-08-29
  • 打赏
  • 举报
回复
mark,关注,学习

67,538

社区成员

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

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