此方法为配置全局数据源,配置局部数据源对象见《李刚》
一、在tomcat的conf/server.xml中的<GlobalNamingResources>元素中添加如下内容:
<GlobalNamingResources>
<Resource
<Resource
</GlobalNamingResources>
2、
<ResourceLink name="jdbc/mysqltest" global="jdbc/mysqltest" type="javax.sql.DataSource"/>
以上配置了两个全局数据源,一个叫jdbc/sqlservertest,是SQLServer2000的,一个叫:jdbc/mysqltest,是mysql的
二、然后在web程序中写一个jsp:内容如下
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!final String JNDINAME = "java:comp/env/jdbc/mysqltest";%>
<%
Connection conn = null;
try {
// 初始化查找命名空间
Context ctx = new InitialContext();
// 找到DataSource
DataSource ds = (DataSource) ctx.lookup(JNDINAME);
conn = ds.getConnection();
PreparedStatement ps = conn
.prepareStatement("select * from users");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
out.println(rs.getString(2) + "<br>");
}
rs.close();
} catch (Exception e) {
System.out.println(e);
}
// 将连接重新放回到池中
conn.close();
%>
****做到这里已可以*****
三、然后将做个web工程发布到tomcat下。
我用了两种方式发布:一种是war包的方式,一种是在server.xml中添加一个Context;
下面分别说说两种发布方式的区别:
1、war包方式:
如果要用war包方式发布web应用程序,又要使用JNDI数据源的话,要在你的web工程的META-INF文件夹下设置web项目的Context内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/test">
</Context>
global:就是tomcat的server.xml中配置的全局数据源名称。
name:就是你的web项目中要用的那个那个数据源的名称:也就是jsp中写的那个mysqltest2名称;
将上面代码保存为context.xml放到META-INF目录下或拷贝上面代码中的
<ResourceLink global="jdbc/mysqltest" name="jdbc/mysqltest2" type="javax.sql.DataSource"/>
到conf/context.xml中。
2、在server.xml中添加context的方式:
直接在server.xml中的<host></host>中添加如下内容:
<Context path="/test" docBase="c:/test" debug="0" reloadable="true">
</Context>
附:配置access数据库的jndi,数据库放在tomcat根目录下或dbq设置为绝对路径。
<Resource