Tomcat下配置JNDI数据源的三种方法


 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。

 没有使用JNDI时我用要这样连接数据库:

Connection conn=null;
try {
  Class.forName("com.mysql.jdbc.Driver");
  conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ssh");
  ......

传统做法的缺点:

  (1) 链接的数据库名称、用户名、密码、驱动字符串写在源码里,修改时要进行二次编译; 写在配置文件里容易暴露给他人。

  (2) 改用其它产品的数据库时,要在源码上更改驱动名及驱动连接数据库字符串及更换数据库驱动。

  (3) 随着实际使用终端的增加,原配置的连接池参数可能需要调整。

  (4) ......

 用了JNDI又是什么样子的呢.....

 首先:把mysql的驱动包加到Tomcat的lib文件夹下

 一、配置全局的JNDI

(1)在tomcat的conf文件夹下的context.xml配置文件中的 "Context" 标签内加入如下代码

<Resource name="jndi/myJNDI"   
            auth="iycao"   
            type="javax.sql.DataSource"   
            driverClassName="com.mysql.jdbc.Driver"   
            url="jdbc:mysql://localhost:3306/ssh"   
            username="root"   
            password="root"   
            maxActive="20"   
            maxIdle="10"   
            maxWait="10000"/> 

        (2)在要使用JNDI的项目中的web.xml文件中加如入下代码

<resource-ref>  
	  <description>JNDI DataSource</description>  
	  <res-ref-name>jndi/myJNDI</res-ref-name>  
	  <res-ref-type>javax.sql.DataSource</res-ref-type>  
	  <res-auth>iycao</res-auth>  
  </resource-ref> 

       注:要保持res-ref-name值要和context.xml的name值一致


二、配置局部的JNDI方法1

       (1)在tomcat的server.xml的<host>标签内添加如下语句

<Context path="/Jndi" docBase="/Jndi"> <!--Jndi代表的是引用的项目名--> 
			<Resource name="jndi/myJNDI"   
				auth="iycao"   
				type="javax.sql.DataSource"   
				driverClassName="com.mysql.jdbc.Driver"   
				url="jdbc:mysql://localhost:3306/ssh"   
				username="root"   
				password="root"   
				maxActive="20"   
				maxIdle="10"   
				maxWait="10000"/> 
        </Context>

        (2) 其它的步骤同上面的一样

三、配置局部的JNDI方法2

       (1) 在项目的META-INFO下面新建context.xml,代码如下

<?xml version="1.0" encoding="UTF-8"?>  
<Context>  
    <Resource name="jndi/myJNDI"   
				auth="iycao"   
				type="javax.sql.DataSource"   
				driverClassName="com.mysql.jdbc.Driver"   
				url="jdbc:mysql://localhost:3306/ssh"   
				username="root"   
				password="root"   
				maxActive="20"   
				maxIdle="10"   
				maxWait="10000"/>      
</Context>

总结:三种方法使用的频率:1》3》2

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值