Tomcat的版本不一样配置datasource会有一些小小差别。这里以sqlserver为例。其他部分请大家灵活变更!
Tomcat5.0.18-5.0.28(其他不知道)配置如下:
与webapps目录下的文件名相同,如datatest.xml。放在conf/Catalina/localhost下
<?xml version='1.0' encoding='utf-8'?>
<Context path="/datatest" docBase="datatest" debug="0" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_sessiontest_log." suffix=".txt" timestamp="true"/>
<Environment name="maxExemptions" type="java.lang.Integer" value="15"/>
<Parameter name="context.param.name" value="context.param.value" override="false"/>
<Resource name="jdbc/datatest" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/datatest">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=osworkflow</value>
</parameter>
</ResourceParams>
</Context>
单个应用的web.xml配置:
<resource-ref>
<description>workflowtest DB Connection</description>
<res-ref-name>jdbc/DefaultDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
此文件中的其他地方略
/*
* Created on 2004-6-21
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package dbconn;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class DBConn {
private Connection conn;
private Statement stmt;
private ResultSet rs;
// private String sqlstr;
public DBConn() {
}
/*
* 连接数据库方法setConn()
*/
public void setConn() {
DataSource ds = null;
try {
// Context initCtx = new InitialContext();
// Context ctx = (Context) initCtx.lookup("java:comp/env");
// DataSource ds = (DataSource) ctx.lookup("jdbc/DefaultDS");
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/datatest");
this.conn = ds.getConnection();
this.stmt = conn.createStatement();
} catch (Exception e) {
System.out.println("数据库连接错误:");
System.out.println(e);
}
}
/*
* 更新数据库方法setUpdate() @param String sqlstr 传递更新SQL字符串
*/
public int setUpdate(String sqlstr) {
this.setConn();
int row = 0;
try {
row = this.stmt.executeUpdate(sqlstr);
} catch (Exception e) {
System.out.println("数据库更新错误,sql串" + sqlstr.substring(0, 6));
System.out.println(e);
row = -1;
}
return row;
}
/*
* 查询方法setUpdate() @param String sqlstr 传递更新SQL字符串
*/
public ResultSet getQuery(String sqlstr) {
this.setConn();
try {
this.rs = this.stmt.executeQuery(sqlstr);
} catch (Exception e) {
System.out.println("数据库查询错误:");
System.out.println(e);
}
return rs;
}
/*
* 关闭数据库连接
*/
public void stmtClose() {
try {
stmt.close();
} catch (Exception e) {
System.out.println("Statement关闭错误:" + e);
}
}
public void connClose() {
try {
conn.close();
} catch (Exception e) {
System.out.println("连接关闭错误:" + e);
}
}
}
自己随便写个jsp测试一下吧。
Tomcat5.5.8配置如下:
差异只在这个data source配置的xml文件中。
<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by yg (CE) -->
<Context path="/workflowtest" reloadable="true" docBase="D:/tools/tomcat/webapps/workflowtest">
<Resource
name="jdbc/DefaultDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=osworkflow"
username="sa"
password=""
maxActive="20"
maxIdle="10"
maxWait="10000"/>
</Context>
其他地方一样!