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自带的数据源;

                                                    

  • 相关阅读:
    saltstack学习-1:saltstack介绍、部署、常见问题处理
    CentOS 6.8使用Subversion + Usvn 搭建版本管理服务器+常用钩子
    matlab快捷键
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302438.html
Copyright © 2011-2022 走看看