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

基於 Hibernate 與 Struts 的 J2EE 應用開發實戰架構

     編輯:Java 相關知識

傳統 J2EE 開發面臨「對象-關係阻抗失配」與 EJB 重量級框架開發效率低的雙重挑戰。本文提出「Struts 處理表現層 MVC + Hibernate 處理持久層 ORM」的輕量級組合架構,並以用戶登入模塊為例演示落地實踐。

一、架構設計

架構圖

  • 表現層:JSP + Struts 標籤庫,ActionServlet 統一入口,Action 處理請求分發;
  • 業務層:Service/DAO 接口與實作,封裝業務邏輯;
  • 持久層:Hibernate SessionFactory、映射文件、HQL 查詢,透明化 SQL;
  • 領域模型:POJO 實體類,對應數據表,支援關聯、繼承映射。

二、關鍵配置

1. Hibernate 配置 (hibernate.cfg.xml)

<hibernate-configuration><session-factory>
  <property name="connection.datasource">java:comp/env/jdbc/sysdb</property>
  <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
  <mapping resource="User.hbm.xml"/>
</session-factory></hibernate-configuration>

建議生產環境通過 JNDI 使用 Tomcat/JBoss 連接池,替換 Hibernate 內置簡易池。

2. 實體映射

<class name="User" table="tUser">
  <id name="UserID" column="User_ID" type="java.lang.Integer">
    <generator class="native"/>
  </id>
  <property name="UserName" column="User_Name" type="java.lang.String"/>
  ...
</class>

3. Struts 配置

<form-beans>
  <form-bean name="LoginForm" type="com.LoginForm"/>
</form-beans>
<action-mappings>
  <action attribute="LoginForm" input="Login.jsp" path="/DoLogin" .../>
</action-mappings>

三、登入流程實作

  1. 用戶在 login.jsp 輸入帳密,提交至 /DoLogin.do;
  2. LoginAction 接收 LoginForm,調用 UserDAO.findByName(username) 獲取持久化對象;
  3. 驗證密碼,成功則存入 Session、轉向歡迎頁,失敗返回錯誤提示;
  4. 全程無手寫 JDBC/SQL,HQL/Criteria 實現查詢,DAO 層封裝 session.save()、session.load() 等操作。

四、優勢總結

維度傳統 EJB/JDBCStruts + Hibernate
開發效率低(大量樣板代碼、部署調試慢)高(向導生成、熱部署、少代碼)
耦合度高(強依賴容器、SQL 散落)低(POJO、配置分離、接口編程)
可維護性差(修改 SQL 需改 Java)好(映射文件集中、HQL 面向對象)
學習曲線陡峭平緩

此架構已被廣泛驗證,成為輕量級 Java EE 開發的經典範式,後續演進為 Spring + Hibernate/MyBatis,核心思想一脈相承。

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