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

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


------解决方案--------------------------------------------------------
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();
  }

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

tu96163

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值