mysql动态调整jndi_tomcat6.0 JNDI MYSQL设置

这里用JDK1.5和tomcat6.0 MYSQL5.02做为例子来讲解 首先配置JDK:(装JDK1.6)

JAVA_HOME:C:\Program Files\Java\jdk1.5.0_04

CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

Path:.;JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

然后安装tomcat6.0

第一部:在apache-tomcat-6.0.14\conf\context.xml中添加:用于配置JNDI的名字

************************************************

type="javax.sql.DataSource" username="feng" password="feng1"

driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.88:3306/test"

maxActive="8" maxIdle="4"/>

这部说明下,我们需要把mysql JDBC的链接驱动加入你web项目web-inf/lib下面,另在mysql中

use 进入mysql 使用命令:

grant select,update,insert,delete on test.* to feng@192.168.1.88 identified by "feng1";

这是创建访问test数据库的用户,并赋予select,update,insert,delete 权限.

接下来:

use mysql;

select host,user from user;

能够看到在user表中已有刚才创建的feng用户。host字段表示登录的主机,其值能够用ip,也可用主机名,

将host字段的值改为%就表示在任何客户端机器上能以feng用户登录到mysql服务器,建议在研发时设为%。

update user set host = '%' where user = 'feng';

如果没有赋予远程登陆权限会报出:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory 异常,找了很久  才发现是这问题。。。

************************************************

第二部:在你的工程的WEB.xml中添加

************************************************

Resource reference to a factory for java.sql.Connection

instances that may be used for talking to a particular

database that is configured in the server.xml file.

jdbc/EmployeeDB

javax.sql.DataSource

Container

***********************************************

第三部:将sqljdbc.jar包添加到apache-tomcat-6.0.14\lib的目录下!

测试代码:写一个JSP页面即可,然后启动tomcat服务,代码如下:

contentType="text/html; charset=GBK"%>

import="java.sql.*" %>

import="javax.naming.*" %>

import="javax.sql.DataSource" %>

JNDI测试

try {

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/EmployeeDB");

conn = ds.getConnection();

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("select * from sysobjects");

while(rs.next()){

out.println(rs.getString(1) + "
");

}

} catch (NamingException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

%>

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2008-03-02 19:00

浏览 7353

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值