有关tomcat数据源配置的文章已经不少,但是一般都是把数据源直接配置到server.xml文件中,这样在移植应用程序时带来了一些不必要的麻烦,其实tomcat数据源的配置还有一种方法如下:
1.假如有工程test,其需要用到的数据源为test/jdbc/Data,则在目录TOMCAT_HOME/conf\Catalina\localhost
下面建立文件test.xml,内容为:
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" displayName="Test" docBase="Test" path="/Test" workDir="work\Catalina\localhost\Test">
<Resource auth="Container" name="test/jdbc/Data" type="javax.sql.DataSource"/>
<ResourceParams name="test/jdbc/Data">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://127.0.0.1:1433/test;tds=8.0;lastupdatecount=true;</value>
</parameter>
<parameter>
<name>password</name>
<value>11111111</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
</ResourceParams>
</Context>
2.其他配置
(1)web.xml文件
在工程当中的web.xml文件中添加
<resource-ref>
<res-ref-name>test/jdbc/Data</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
(2)工程中调用代码
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("test/jdbc/Data");
// test/jdbc/Data是数据源的名字
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();