java连接池与jdbc直接连数据库及jndi的关系?
读配置文件连接数据库与java连接池又是什么关系?
存储过程与读配置文件连接数据库及连接池之间又是什么关系?
这几个连接数据库之间的关系请详细说下,谢谢!知道怎么用,但是有点混乱

解决方案 »

  1.   

    1.java连接池与jdbc直接连数据库及jndi的关系
      jdbc直接连数据库,就是通过java.sql下的几个常用接口Connection,DriverManager的方式获取与数据库的连接
      java数据库连接池,是对jdbc连接数据库连接的缓存,jdbc一次只能获取到一个连接,而获取数据库连接是个非常耗费资源的操作,利用数据库连接池,可以一下子创建出多个数据库连接出来,这样不用每次连接都去新增,只需要从池子中获取一个已经打开的连接就好了,用完后再把连接放回去(为每个连接设置一个标志位表示目前是否被占用)
       jndi,是Java Naming and Directory Interface,命名与目录接口,他的原理是在服务器端提供一个接口(服务),可以让远程客户端来进行调用,如提供一个数据库连接服务,在服务器上注册一个名字叫dataSource,这样客户程序就可以通过这个名字来获取这个dataSource对象,当然,jndi不仅仅是能提供这种数据库连接服务
    2.读配置文件连接数据库与java连接池又是什么关系
      如果连接数据库,肯定要知道数据库驱动,用户名,密码之类的信息,相比把这些url,username,password写死在代码里,将这些东东写在配置文件里是个很好的实现方式
      java连接池--这个你应该指的是数据库连接池,上面已经介绍过了,将username,password写配置文件是一种编码的最佳实践,数据库连接需要用到这些配置文件中配置的信息
    3.存储过程与读配置文件连接数据库及连接池之间又是什么关系
      存储过程是数据库的东东,就是定义一对的sql语句,可以一把执行完毕--可以简单的这样理解,具体的概念你得去翻课本了,这个纯数据库的东西和java没一点关系,当然,通过java提供的api是可以调用这些写在数据库里的存储过程的,读配置文件连接数据库及连接池第2点中已解释
      

  2.   

    1.java连接池与jdbc直接连数据库及jndi的关系?
    答:JAVA本身没有连接池,你指的应该是数据库连接池,JAVA(或AP服务器)只不过是调用了数据库中的连接池实现了表面上的管理,真正还是数据库中连接池。每个数据库都有自己的最大连接数,比如ORACLE默认150个,但连接池默认是10个。这10个用完后不会立即关闭,而是存放在DB服务器中,避免其它进程频繁使用时而浪费系统开消(创建和销毁)。
    jndi是远程调用,跟连接池没有关系2.读配置文件连接数据库与java连接池又是什么关系?
    答:两者不相关
    读配置文件是为了将来维护方便,比如数据库改了,只要改配置文件就行了。3.存储过程与读配置文件连接数据库及连接池之间又是什么关系?
    答:存储过程是一堆SQL命令的集合,存放并运行在DB服务器上,和我们AP服务器没有任何关系。和连接池也没有关系。另外关于java连接池,也有是为了防止项目中不停的向DB服务器要连接,减少数据库的负担,这时候会定死项目最大可访问连接数,比如10个,而将最大数中一部分(比如5个)做为保留Connection的个数,再加以适当的策略去管理,实际也就实现了自己管理的JAVA连接池。