解析struts+spring+hibernat整合練習示例(2)_JSP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀Struts+Spring+Hibernate基礎教程
      本文介紹Jsp的SSH企業級開發模式 Struts+Spring+Hibernate基礎教程 ,即前端使用StrutsMVC框架,中間層采用spring,后臺采用Hibernate。 主要包含以下內容: ·配置Hibernate和事務 ·裝載Spring的applicationContext.xml文件 ·建立業務層和DAO之間的依賴關

      建立數據庫在 這里我使用的是mysql4.1.13
       
      CREATE TABLE `user` (
        `ID` int(11) NOT NULL auto_increment,
        `USERNAME` varchar(50) NOT NULL default '',
        `PASSWORD` varchar(50) NOT NULL default '',
        PRIMARY KEY  (`ID`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
       
      添加記錄 insert into user (USERNAME,PASSWORD) values ('test','test')
       
      創建Hibernate框架
      在配置界面中配置數據庫的連接部份,重要的是點擊鏈接將jdbc拷貝到lib目錄中
      使用MyEclipse的數據Database Explorer工具創建User.hmb.xml、AbstractUser.java、User.java映射文件
      創建完成后可以將自動生成的hibernate.cfg.xml刪除
       
      創建UserDAO.java、UserDAOImp.java
      UserDAO.java
      public interface UserDAO {
         public abstract boolean isValidUser(String username, String password);
      }
       
      UserDAOImp.java
      import java.util.List;
      import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
      import com.test.Hibernate.SessionFactory;
      public class UserDAOImp extends HibernateDaoSupport implements UserDAO {
          private SessionFactory sessionFactory;
          private static String hql = "from User u where u.username=? ";
          public boolean isValidUser(String username, String password) {
             List userList = this.getHibernateTemplate().find(hql, username);
             if (userList.size() > 0) {
                 return true;
             }
             return false;
          }
      }
       
      修改LoginAction.java文件,使用userDao的方法來進行用戶驗證
      package com.test.struts.action;
       
      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 org.apache.struts.validator.DynaValidatorForm;
       
      import com.test.UserDAO;

      public class LoginAction extends Action {

       private UserDAO userDAO;
       
       public UserDAO getUserDAO() {
        return userDAO;
       }
       
       public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
       }
       
       public ActionForward execute(ActionMapping mapping, ActionForm form,
         HttpServletRequest request, HttpServletResponse response) {
        DynaValidatorForm loginForm = (DynaValidatorForm) form;
        // TODO Auto-generated method stub
        String username = (String) loginForm.get("username");
        String password = (String) loginForm.get("password");
        loginForm.set("password", null);
        if (userDAO.isValidUser(username,password)) {
         return mapping.findForward("indexGo");
        } else {
         return mapping.getInputForward();
        }
       }
      }
      綠色字體為修改部份
       
      現在剩下最后的spring配置了
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
       
      <beans>
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName">
         <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
         <value>jdbc:mysql://localhost/test</value>
        </property>
        <property name="username">
         <value>root</value>
        </property>
        <property name="password">
         <value>root</value>
        </property>
       </bean>
       
       <!-- 配置sessionFactory, 注意這里引入的包的不同  -->
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
         <ref local="dataSource" />
        </property>
        <property name="mappingResources">
         <list>
          <value>com/test/Hibernate/User.hbm.xml</value>
         </list>
        </property>
        <property name="hibernateProperties">
         <props>
          <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
          <prop key="hibernate.show_sql">true</prop>
         </props>
        </property>
       </bean>
       
       <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
         <ref local="sessionFactory" />
        </property>
       </bean>
       
       <bean id="userDAO" class="com.test.UserDAOImp">
        <property name="sessionFactory">
         <ref local="sessionFactory" />
        </property>
       </bean>
       
       <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
         <ref bean="transactionManager" />
        </property>
        <property name="target">
         <ref local="userDAO" />
        </property>
        <property name="transactionAttributes">
         <props>
          <prop key="insert*">PROPAGATION_REQUIRED</prop>
          <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
          <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
         </props>
        </property>
       </bean>
       
       <bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
        <property name="userDAO">
         <ref bean="userDAOProxy" />
        </property>
       </bean>
      </beans>
      現在可以進行測試了!
      在編寫代碼有配置內容時一定要注意 hibernate 和 hibernate3 ,這兩個包的名字就只差一個字,千萬不要有錯,否則找錯誤可是很難的。

      分享:解讀applicationcontext.xml
      在看項目實踐精解:基于Struts-Spring-Hibernate的Java應用開發過程中對里面的一些概念不熟悉,在網上搜搜資料,解釋一下applicationcontext.xml 我們以項目中的訂單 Order 為例簡要說明一下 Spring 與 Hibernate 的集成。關于如何使用 Hibernate 來對數據庫表

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:JSP教程/更新時間:2010-02-25
      相關JSP教程

      JSP教程Rss訂閱編程教程搜索

      JSP教程推薦

      猜你也喜歡看這些