Struts通过数据源连接数据库
By:
Border
环境:myeclipse3.8.3 + eclipse3.0.1 + tomcat 5.0.16 + struts1.1 + oracle9.0.1.0.1
Oracle驱动在安装目录下%oracle_home%/jdbc/lib/classes12.jar 不用的版本有不同的名字,可以参照%oracle_home%/jdbc/readme
1. struts-config.xml的data-source中的元素
<data-sources >
<data-source key="org.apache.struts.action.DATA_SOURCE"
type="org.apache.struts.util.GenericDataSource">
<set-property property="minCount" value="2" />
<set-property property="password" value="manager" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="system" />
<set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="description" value="oracle_database" />
<set-property property="url" value="jdbc:oracle:thin:@192.168.1.209:1521:orcal" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="loginTimeout" value="1000" />
</data-source>
</data-sources>
注意:a.jdbc:oracle:thin:@192.168.1.209:1521:orcal 中的orcal为sid码,在安装DBS时就有设置,默认为orcal
b. 在用struts默认的data-soutce :org.apache.struts.util.GenericDataSource
而不是:org.apache.tomcat.dbcp.dbcp.BasicDataSource
2..创建action class来测试DataSource
package com.yourcompany.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.sql.*;
public class TestDataSource extends Action
{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
javax.sql.DataSource dataSource;
java.sql.Connection myConnection=null;
try {
dataSource = getDataSource(request);
myConnection = dataSource.getConnection();
Statement stmt=myConnection.createStatement();
ResultSet rst=stmt.executeQuery("select * from addressbook_table");
System.out.println("********Out Put from TestDataSource ******");
while(rst.next()){
System.out.println("User Name is: " + rst.getString("name"));
}
System.out.println("******************************************");
rst.close();
stmt.close();
// do what you wish with myConnection
} catch (SQLException sqle) {
getServlet().log("Connection.process", sqle);
} finally {
//enclose this in a finally block to make
//sure the connection is closed
try {
myConnection.close();
} catch (SQLException e) {
getServlet().log("Connection.close", e);
}
}
return mapping.findForward("DataSoutcesuccess");
}
}
3.
在
struts-config.xml里添加action mapping
<action
path="/TestDataSource"
type="com.yourcompany.struts.TestDataSource">
<forward name="DataSoutcesuccess" path="/success.jsp"/>
</action>
4. 创建一个success.jsp