有關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();