软件环境: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在配置上不一样的地方。