zoukankan      html  css  js  c++  java
  • 对JNDI数据源的理解

    一:JNDI数据源的作用

    1:在没有使用JNDI数据源时,程序员开发访问MySQL数据库的应用,需要将一个对 MySQL JDBC 驱动程序类的引用进行硬编码,并通过使用适当的 JDBC URL 连接到数据库;这样一来会出现以下问题:

    (1)数据库服务器名称、用户名和口令都可能需要改变,由此引发JDBC URL需要修改;
    (2)数据库可能改用别的产品,如改用DB2或者Oracle,引发JDBC驱动程序包和类名需要修改;
    (3)随着实际使用终端的增加,原配置的连接池参数可能需要调整;                                                                                                 ……

    2:使用了JNDI数据源后,把以上这些问题交给J2EE容器来配置和管理,程序员只需要在应用程序中对这些配置和管理进行引用即可。也就是在J2EE容器中配置JNDI参数(也就是JDBC引用参数),定义一个JNDI数据源;再给这个JNDI数据源设置一个名称;然后在程序中,通过数据源名称引用JNDI数据源从而访问后台数据库。

    二:对JNDI数据源的理解(依照下图进行描述)

                                                  

    1:在J2EE容器内配置JNDI数据源(J2EE 规范要求所有 J2EE 容器都要提供 JNDI 规范的实现),将要链接的数据库的相关信息配置到JNDI中即可配置成JNDI数据源;也就是由应用服务器来管理数据源;

    2:应用程序不再关心访问哪个数据库,以及数据库的具体配置信息;

    3:当应用程序要访问数据库时,需要从JNDI中查找数据源,然后再执行数据访问操作;即JNDI充当了数据库和应用程序之间的交换机;

    4:具体在JNDI中如何配置数据源,请看这篇文章,待定

    三:与不使用JNDI数据源时的示意图对比

    1:下图是不使用JNDI数据源时的数据源配置情况;

    2:需要在应用程序内部配置数据库连接参数,即数据源;

    3:配置的数据源可以是数据源连接池,也可以是非池数据源;但是在生产环境下,建议使用数据源连接池;

    4:配置数据源连接池时,可以使用DBCP、C3P0等;配置非池数据源时,可以使用spring自带的数据源;

                                                    

  • 相关阅读:
    HDU.4352.XHXJ's LIS(数位DP 状压 LIS)
    AGC 015C.Nuske vs Phantom Thnook(思路 前缀和)
    window下域名解析系统DNS诊断命令nslookup详解
    Nginx入门篇-基础知识与linux下安装操作
    物理服务器Linux下软RAID和UUID方式挂载方法--Megacli64
    Linux下进程与线程的区别及查询方法
    Linux系统下DNS主从配置详解
    CactiEZ中文解决方案和使用教程
    关于MyBase 7.0 破解的方法
    git分支与合并(3)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302438.html
Copyright © 2011-2022 走看看