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

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

2012-11-05 21:56 447 查看


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

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

[html] view
plaincopyprint?

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" 标签内加入如下代码

[html] view
plaincopyprint?

<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文件中加如入下代码

[html] view
plaincopyprint?

<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>标签内添加如下语句

[html] view
plaincopyprint?

<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,代码如下

[html] view
plaincopyprint?

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