您的位置:首页 > 运维架构 > Tomcat

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

2012-08-06 09:30 274 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: