一、概念和理解:

①.jdbc:Java Data Base Connectivity,java数据库连接,最为传统的一种方式,直接连接操作数据库,需要连接时创建连接,使用结束时销毁连接。

②.Connection pool:连接池,连接池的出现是由于传统的jdbc连接,在请求量比较大的情况下将频繁的创建、销毁连接,然而这里有两个问题:
    1.创建、销毁连接本身是比较耗费系统资源的一种操作。
    2.数据库的连接是有固定的数量的,这种资源是比较昂贵的。
③.jndi:java naming and directory interface,java命名目录接口,是sun公司提出的一种标准的java命名接口。提供客户端接口api,可以使开发者不必关心数据库的username、password、driver等等都是什么,而是通过API接口直接调用。说白了就是使用xml配置服务器全局共用的数据源,开发者通过接口直接来调取使用。多说一句,理解jndi可以和理解servlet-api.jar、jsp-api.jar一样,Sun公司只是提供一个接口规范,具体实现由服务器来实现。比如:使用tomcat就由tomcat来实现这个接口,使用jboss就由jboss来实现这个接口。
 
二、关系定位
那么他们三者之间的关系是什么呢?
    jndi是一个树结构,树上绑定了很多dataSource,这些dataSource用来和连接池交互,可以理解为Connection pool的上层结构。
    Connection pool则用来维护管理固定数量的连接,直接和db层进行操作。
    借用网上的一张图,算了还是自己画一张吧,加深印象:
 
 
 
 

jdbc、Connection pool、jndi的理解和关系的更多相关文章

  1. weblogic JDBC Connection Pools--转官方文档

    http://docs.oracle.com/cd/E13222_01/wls/docs81/ConsoleHelp/jdbc_connection_pools.html#1106016 JDBC C ...

  2. servlet与线程与jdbc connection的关系

    servlet与线程与jdbc connection的关系 都是一一绑定的关系, servlet接受那么多此请求. 一个请求,对应一个线程,对应一个DB POOL的connection. 因为conn ...

  3. [原理][源代码解析]spring中@Transactional,Propagation.SUPPORTS,以及 Hibernate Session,以及jdbc Connection关系---转载

    问题: 一. 1. Spring 如何处理propagation=Propagation.SUPPORTS? 2. Spring 何时生成HibernateSession ? 3. propagati ...

  4. Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection

    Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnec ...

  5. JDBC Connection Configuration配置正确,提示Error preloading the connection pool

    JDBC Connection Configuration配置正确,提示Error preloading the connection pool JDBC 请求报错,提示: 因为之前执行是正确的,这次 ...

  6. 连接池、数据源、JNDI三者间的关系及用法

    连接池:连接池是由容器(比如Tomcat)提供的,用来管理池中的连接对象.连接池自动分配连接对象并对闲置的连接进行回收.连接池中的连接对象是由数据源(DataSource)创建的.连接池(Connec ...

  7. JDBC Connection

    [ http://shift-alt-ctrl.iteye.com/blog/1967020]   关于JDBC中关于Connection的两个疑问:   1.Connection实例是线程安全的吗? ...

  8. JNDI 的理解

    JNDI是 Java 命名与文件夹接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之中的一个,不少专家觉得,没有透彻理解JNDI的意义和作用 ...

  9. Weblogic常见故障常:JDBC Connection Pools(转)

    WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...

随机推荐

  1. [转] 浏览器自动化测试初探:使用 phantomjs 与 casperjs

    [From] https://www.qcloud.com/community/article/641602001489391648 作者:yangchunwen 首先要解释一下为什么叫浏览器自动化测 ...

  2. Oracle KEEP的用法

    [摘录自] http://blog.itpub.net/12932950/viewspace-687036/ http://flyfx.iteye.com/blog/1994993 聚合函数MIN, ...

  3. .net mvc 用jquery ajax成功后页面跳转。

    $.ajax({ //url: 'http://192.168.0.102/webApiDemo/api/WebApiTest/PostStudentInforOnePara', //url: &qu ...

  4. 关于在scrapy中使用xpath

    1. 还是以虎嗅为例,他给我返回的是一个json格式的json串 2.那么我需要操作的就是把json串转换成我们的字典格式再进行操作 str=json.loads(response.body)['da ...

  5. quartz使用(整合spring)

    quartz与spring整合后,还是需要Scheduler实例.JobDetail实例.Trigger实例,只不过是用FactoryBean的方式创建了. 在spring-context-suppo ...

  6. CentOS(Linux)主机名字前多了 (base),如何取消和添加

    我们知道IDE中有显示或隐藏某个选项/页面的功能,我们想要修改这个参数,一般都会到设置(settings)中去找.那么与之对应的,Linux上这个终端对应的设置也应该找设置文件. Terminal对应 ...

  7. linux 入门测验

    cd . 当前目录.. 返回上一级目录 ../../../返回多级目录 grep "目标信息" 目标地址 -v :显示没有被匹配的信息 mkdir -p:创建多级目录 mkdir ...

  8. SpringMVC 源码阅读

  9. jQuery遍历祖先元素:parentsUntil

    Description: Get the ancestors of each element in the current set of matched elements, up to but not ...

  10. MYSQ系列-MYSQL基础增强(Mysql基本语句)

    MYSQL基础增强 库操作 创建一个使用UTF-8字符集的数据库: create database mydb character set UTF8; 创建一个带校对集的数据库 create datab ...