码迷,mamicode.com
首页 > 其他好文 > 详细

(一)JNDI基础

时间:2017-10-16 19:31:27      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:引用   方法   文件   classname   char   root   isp   客户端   全局   

一、简介

技术分享

  • 在Tomcat 4.1.27之后,在服务器上就直接增加了数据源的配置选项,直接在服务器上配置好数据源连接池即可。在J2EE服务器上保存着一个数据库的多个连接。每一个连接通过DataSource可以找到。DataSource被绑定在了JNDI树上(为每一个DataSource提供一个名字)客户端通过名称找到在JNDI树上绑定的DataSource,再由DataSource找到一个连接。如下图所示:

技术分享

  • 如果要想使用数据源的配置,则必须配置虚拟目录,因为此配置是在虚拟目录之上起作用的。需要注意的是,如果要想完成以上的功能,在Tomcat服务器上一定要有各个数据库的驱动程序。

二、全局配置JNDI

  • 此种配置需要在server.xml中配置数据源,具体的配置步骤如下:

    2.1  在tomcat服务器的lib目录下加入数据库连接的驱动jar包

技术分享

 

   2.2  修改tomcat服务器的conf目录下server.xml配置文件

 技术分享

  修改如下:

    <GlobalNamingResources>
        <!-- Editable user database that can also be used by UserDatabaseRealm 
            to authenticate users -->
        <Resource auth="Container" description="User database that can be updated and saved"
            factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase"
            pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" />

<!--新增MySQL数据库的JNDI数据源--> <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.0.0.1:3306/leadtest?useUnicode=true&amp;characterEncoding=utf-8" /> </GlobalNamingResources>

 

   2.3  全局JNDI配置测试

       2.3.1  创建一个JNDI测试项目JNDITest,在web.xml中添加JNDI配置的资源引用

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JNDITest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
 <!--MySQL数据库JNDI数据源引用 -->
   <resource-ref>
       <description>MySQL DB Connection</description>
       <res-ref-name>mysqlDataSource</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
   </resource-ref>
</web-app>

 

   2.3.2  映射JNDITest项目的虚拟目录

  • 在tomcat的\conf\Catalina\localhost下(没有目录就新建)创建一个xml文件,文件名必须和项目名相同,测试JNDI数据源的web项目的项目名称是:JNDITest,所以xml文件的命名就叫JNDITest.xml,如下图所示:

 技术分享

  • 配置JNDITest.xml文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<!--
    jndi配置方法(tomcat):
    将此文件放置在tomcat\conf\Catalina\localhost下(没有目录就新建)
 -->
<!--映射JNDITest项目的虚拟目录-->
<Context docBase="D:/MyEclipse8.5/workspace/JNDITest/WebRoot" debug="0" reloadable="false">
 
    <!--引用mysql数据库的JNDI数据源-->
    <ResourceLink name="mysqlDataSource" global="jdbc/mysql" type="javax.sql.DataSource"/>

</Context>

 

  2.3.3  测试从JNDI数据源获取数据库连接

  配置完数据源连接池之后,就可以按照以下的步骤进行访问:

    ? 初始化名称查找上下文
    ? 通过JNDI名称找到DataSource
    ? 通过DataSource取得一个连接
    ? 操作数据库
    ? 关闭数据库,关闭的时候是将连接放回到连接池之中

 

   2.3.4  测试

 

(一)JNDI基础

标签:引用   方法   文件   classname   char   root   isp   客户端   全局   

原文地址:http://www.cnblogs.com/shyroke/p/7678047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!