在struts框架中配置SqlServer數據源

在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直連改成橋連
相關文章
相關標籤/搜索