在MIS系統中,應用程序與數據庫交互可使用各類不一樣的鏈接方式,相比於之前把數據庫鏈接寫在某個JavaBean中,在配置文件中配置數據源,多是個更好的選擇,由於若是之後須要改變數據源,那麼只要在配置文件進行簡單的改寫就能夠了,而不用對程序自己的代碼作任何改變,從而減小了應用程序後期維護升級的成本!
那麼如何在struts框架中加入數據源的配置呢,很是簡單,只要在struts-config.xml文件中寫入數據源的配置信息便可,這裏以在struts1.1框架中配置sqlserver數據源爲例,作個簡單的闡述(JBuilder2005+Tomcat 5.0+SqlServer2000):
一、 準備數據源配置所須要的jar文件
在struts框架中配置SqlServer數據源,除了須要鏈接sqlserver數據庫的那三個jar包以外,還須要commons-collections-2.1.1.jar,commons-dbcp-1.2.1.jar,commons-pool-1.2.jar和struts-legacy.jar,其中前三個jar包在JBuilder2005的thirderpary\ jakarta-tomcat-5.0.27\common\lib中就能夠直接找到,而struts-legacy.jar在JBuilder2005中的thirdparty\jakarta-struts-1.1-lib中也能夠得到,並將struts-legacy.jar也拷貝到thirderpary\ jakarta-tomcat-5.0.27\common\lib裏去,注意:這4個jar包除了要放在tomcat中,還要在web程序的module中的lib文件加中拷貝一份
二、 編寫struts-config.xml文件,在裏面加上數據源配置的一系列標記,例如:
<data-sources>
<data-source key="MySource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studb" />
<set-property property="username" value="sa" />
<set-property property="password" value=""/>
</data-source>
</data-sources>
這段標記比較簡單,就不一一解釋了,只要記住數據源名稱就好了 ,好比我這裏本身起的數據源名稱是「MySource」,在struts2.0中,部分標記的屬性會有所不一樣
三、 在Action中得到數據源鏈接
public class LoginAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
LoginActionForm loginActionForm = (LoginActionForm) actionForm;
ServletContext context=servlet.getServletContext();
DataSource ds=(DataSource)context.getAttribute("MySource");
//將數據源鏈接做爲參數傳入某個業務邏輯所在的JavaBean中
LoginBean bean=new LoginBean(ds);
if(bean.isLogin(loginActionForm.getName(),loginActionForm.getPwd())){
return actionMapping.findForward("success");
}
return actionMapping.findForward("fail");
}
}
在LoginBean中,構造函數的關鍵代碼以下:
public LoginBean(DataSource ds){
try {
con = ds.getConnection();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
到這裏爲止,struts中配置數據源已經搞定,若是由於機器緣由致使運行時鏈接不成功,能夠試着將sql直連改成橋連