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