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);
來獲得一個數據源,其實這里我有點不明白,但是可以這樣用