首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts + Spring + Hibernate (SSH) 快速入門:三層架構完整實作步驟

     編輯:Java 相關知識

本文以 MyUsers 簡易用戶管理系統為例,示範 SSH 整合全流程:前端 Struts MVC、中間層 Spring 宣告式事務、後端 Hibernate ORM。涵蓋資料庫建表、Hibernate Mapping、DAO 實作、Service 事務宣告、Struts Action 整合、JSP 前端操作 10 大步驟。

專案結構

src/
  com.jandar.model/        # 實體類別 (User)
  com.jandar.service.dao/  # DAO 介面 (IDAO, IUserDAO)
  com.jandar.service.dao.hibernate/  # DAO 實作 (UserDaoHibernate)
  com.jandar.service/      # Service 層 (UserManager)
  com.jandar.web/          # Struts Action (UserAction)
WebContent/
  page/                    # JSP 頁面
  WEB-INF/
    struts-config.xml
    applicationContext.xml  # Spring 設定
    hibernate.cfg.xml
    web.xml
lib/                       # struts, spring, hibernate 等 JAR
test/                      # JUnit 測試

關鍵實作片段

1. Hibernate Mapping (User.hbm.xml)

<hibernate-mapping package="com.jandar.model">
  <class name="User" table="APP_USER">
    <id name="id" column="ID" type="integer">
      <generator class="assigned"/>
    </id>
    <property name="firstName" column="FIRSTNAME" type="string" length="10" not-null="true"/>
    <property name="lastName" column="LASTNAME" type="string" length="10"/>
  </class>
</hibernate-mapping>

2. 實體類別 User.java (繼承 BaseObject 含 toString/equals/hashCode)

public class User extends BaseObject {
    private Long id;
    private String firstName;
    private String lastName;
    // getter/setter...
}

3. DAO 介面與 Hibernate 實作

public interface IUserDAO extends IDAO {
    List getUsers();
    User getUser(Integer id);
    void saveUser(User user);
    void removeUser(Integer id);
}

public class UserDaoHibernate extends HibernateDaoSupport implements IUserDAO {
    public List getUsers() { return getHibernateTemplate().find("from User"); }
    public User getUser(Integer id) { return (User) getHibernateTemplate().get(User.class, id); }
    public void saveUser(User user) { getHibernateTemplate().saveOrUpdate(user); }
    public void removeUser(Integer id) { 
        Object user = getHibernateTemplate().load(User.class, id);
        getHibernateTemplate().delete(user); 
    }
}

4. Spring 配置 (applicationContext.xml 關鍵片段)

  • DataSource、SessionFactory、HibernateTransactionManager
  • DAO Bean 注入 SessionFactory
  • Service Bean (UserManager) 注入 DAO,宣告式事務:<tx:method name="*"/>
  • Struts Action 由 Spring 管理 (DelegatingActionProxy) 或注入 Service

10 步驟完整流程

  1. 安裝 Eclipse 外掛:Hibernate Sync、Spring IDE、MyEclipse、Tomcat、XML/JSP
  2. 資料庫建表:CREATE TABLE app_user (id NUMBER PRIMARY KEY, firstname VARCHAR2(32), lastname VARCHAR2(32))
  3. 配置 Hibernate + Spring
  4. 建立 Hibernate DAO 實作類別
  5. 執行測試類別,驗證 DAO CRUD
  6. 建立 Service 類別,宣告事務
  7. 建立 Web 層 Action 與 Form/Model
  8. 執行 Action 測試類別,驗證 CRUD
  9. 建立 JSP 頁面,瀏覽器操作 CRUD
  10. 瀏覽器驗證 JSP 功能

核心優勢

Spring 宣告式事務 免除繁瑣程式碼控制交易;Hibernate 整合 簡化持久層;Struts 提供成熟 MVC。三者分工明確,鬆耦合、高內聚。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved