struts1.2
在使用struts-config.xml中的 <data-sources>来配置数据源的时候,
要是配置不正确的话,会发生一些奇怪的错误,在提交表单的时候可能会出现
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
这样的错误 ,也就是找不到action类
基本配置可以参考下面
<data-sources>
<data-source key="bbsDB" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="password" value="feng" />
<set-property property="minCount" value="3" />
<set-property property="maxCount" value="10" />
<set-property property="username" value="root" />
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="description" value="test" />
<set-property property="url" value="jdbc:mysql://localhost:3306/bbs" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
</data-source>
</data-sources>
另外还需要4个包 ,我也不知道为什么啊!书上的例子竟然没有提到,网上搜索后得知,
分别是
commons-dbcp-1.2.jar
commons-pool-1.2.jar
struts-legacy-1.0.jar
commons-collections-3.1.jar
把这四个jar包放到web应用的WEB-INF/lib目录下,还有要把
MySQL的驱动程序包也放到这里(也可以把数据库的驱动包放
到%Tomcat_Home%/common/lib目录下或%Resin_Home%/lib目录下,
这样在启动Web服务器的时候就会加载这个包,服务器和Web应用
都可以使用驱动程序类),好象少一个就会出错
!
调用的时候可以类似下面的使用
DataSource ds = getDataSource(request,"bbsDB");/*bbsDB就是上面的key*/
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SQL String");
在Action类里面可以这样
ServletContext context = servlet.getServletContext();
DataSource dataSource = (DataSource) context
.getAttribute(Constants.DATASOURCE_KEY);
DB db = new DB(dataSource);
来获得一个数据源,其实这里我有点不明白,但是可以这样用