以前项目都是使用WebSphere或WebLogic中间件服务器,数据源一块都很简单,就是鼠标点点点,可真的到了Tomcat服务器,自己却有点发愁了,Baidu了半天,看到的文档九成九都是转载,看的极其乏味,不过还是蛮有用的。废话不多说了,该我们自己出手了:
准备工作:
把正确的jdbc驱动拷贝到tomcat目录下common/lib目录下
例如本例就是把ojdbc14.jar文件拷贝到该目录下。
参数说明:
数据库:Oracle 9i
JNDI名称:jdbc/test
数据库链接地址:127.0.0.1
数据库服务名:orcl
Tomcat安装目录:d:/tomcat 5.5
一、安装 tomcat5.5(这个步骤就不重复了);
二、打开D:/Tomcat 5.5/conf/server.xml文件
在<Host appBase="webapps" autoDeploy="true" name="localhost"
unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
节点后添加如下信息:
<!--虚拟目录指向-->
<Context path="/web_test" docBase="E:/dev_space/web_test"
debug="0" reloadable="true" crossContext="true">
<!--连接池参数-->
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" username="test"
password="test" maxActive="20" maxIdle="10" maxWait="-1" />
到这里,第一步配置就完成了
参数说明:
/web_test:上下文根,例如:http://127.0.0.1:8080/web_test 通过这个目录就可以直接访问你应用中的index.jsp文件了
E:/dev_space/web_test 应用所在目录
oracle.jdbc.driver.OracleDriver 驱动名称
jdbc:oracle:thin:@127.0.0.1:1521:ora9i URL地址
user_name、password就不用介绍了吧
三、应用web.xml参数配置:
打开应用所在目录下WEB-INF/web.xml文件,在</web-app>之前添加如下内容:
<description>Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
保存内容,OK,重启起动tomcat服务,打完收工!
写个测试测试页面测试一下:
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" pageEncoding="gb2312"%>
<%@ page import="javax.*"%>
<%@ page import="javax.naming.*"%>
<%
request.setCharacterEncoding("gb2312");
String sql = "select to_char(sysdate,'YYYYMMDD') today from dual ";
out.print("Start<br/>");
try {
InitialContext ctx = new InitialContext();
javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx
.lookup("java:comp/env/jdbc/test");
Connection conn = connectionPool.getConnection();
ResultSet rs = null;
Statement st = null;
st =conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()){
out.println(rs.getString("today"));
}
rs.close();
st.close();
conn.close();
} catch (Exception ex) {
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
<html>
<body>
</body>
</html>
测试一下,如果正常的话就会在页面上看到比如:20070926,到这一步,一个简单的连接池配置就完成了,中间参数的作用视应用具体修改。