軟件環境:Tomcat5.5.15,Eclipse3.1.2,MyEclipse4.1,MySQL5.0.15,Resin3.0.18
配置過程:
一、下載必要的jar包。有四個包要下載(網上有貼子說只要下面前三個包就可以了,但我在配置的時候如果沒有第四個包會報錯)。
http://apache.linuxforum.net/dist/jakarta/commons/dbcp/binaries/commons-dbcp-1.2.zip
http://apache.linuxforum.net/dist/jakarta/commons/pool/binaries/commons-pool-1.2.zip
http://apache.linuxforum.net/dist/jakarta/struts/struts-legacy/struts-legacy-1.0.zip
http://apache.linuxforum.net/dist/jakarta/commons/collections/binaries/commons-collections-3.1.zip
把這四個jar包放到web應用的WEB-INF/lib目錄下,還有要把MySQL的驅動程序包也放到這里(也可以把數據庫的驅動包放到%Tomcat_Home%/common/lib目錄下或%Resin_Home%/lib目錄下,這樣在啟動Web服務器的時候就會加載這個包,服務器和Web應用都可以使用驅動程序類)
二、在struts-config.xml中添加Data Source。MyEclipse的Design模式下可以可視化地編輯struts-config.xml和添加Data Source,但它在struts-config.xml中生成的數據源的代碼是錯誤的!就是因為這個耽誤了我很多時間!
我們手工編輯代碼:
<data-sources>
<data-source key="datasource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="password" value="admin" />
<set-property property="minCount" value="3" />
<set-property property="maxCount" value="10" />
<set-property property="username" value="admin" />
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="description" value="test" />
<set-property property="url" value="jdbc:mysql://localhost/test" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
</data-source>
</data-sources>
如果要配置多個data source,可以給每個data source指定不同的key,然后在程序中根據key指定要引用的數據源。
三、測試數據源。配置好以后就可以在ActionServlet中使用了。
DataSource ds = getDataSource(request,"datasource");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SQL String");
附: Struts1.1中struts-config.xml的配置:
<data-sources >
<data-source key="datasource" type="org.apache.struts.util.GenericDataSource">
<set-property property="password" value="admin" />
<set-property property="minCount" value="2" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="admin" />
<set-property property="driverClass" value="com.mysql.jdbc.Driver" />
<set-property property="description" value="test" />
<set-property property="url" value="jdbc:mysql://localhost/test" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
</data-source>
</data-sources>
注意:藍色字體的部分是1.1和1.2在配置上不一樣的地方。