成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate ActionFormBean簡介

開發 后端
這里介紹Hibernate ActionFormBean是 Web層的數據表示,它和HTML頁面Form對應,只要Web頁面的操作流程發生改變,它就要相應的進行修改。

Hibernate還是比較常用的,于是我研究了一下Hibernate ActionFormBean,在這里拿出來和大家分享一下,希望對大家有用。

在struts+Hibernate這種結構中,是不應該把Hibernate產生的PO直接傳遞給JSP的,不管他是Iterator,還是List,這是一個設計錯誤。

我來談談在J2EE架構中各層的數據表示方法:Web層的數據表示是FormBean,數據來源于HTML Form POST業務層的數據表示是VO持久層的數據表示是PO,其數據來源于數據庫,持久層的數據表示例如CMP在一個規范的J2EE架構中,不同層的數據表示應該被限制在層內,而不應該擴散到其它層,這樣可以降低層間的耦合性,提高J2EE架構整體的可維護性和可擴展性。比如說Web層的邏輯進行了修改,那么只需要修改FormBean的結構,而不需要觸動業務層和持久層的代碼修改。同樣滴,當數據庫表進行了小的調整,那么也只需要修改持久層數據表示,而不需要觸動業務層代碼和Web層代碼。

不過由于Hibernate的強大功能,例如動態生成PO,PO的狀態管理可以脫離Session,使得在應用了Hibernate的J2EE框架中,PO完全可以充當VO,因此我們下面把PO和VO合并,統稱為PO.先來談談ActionFormBean和持久層的PO之間的重大區別。

在簡單的應用中,Hibernate ActionFormBean和PO幾乎是沒有區別,所以很多人干脆就是用ActionFormBean來充當PO,于是ActionFormBean從JSP頁面到Servlet控制層再到業務層,然后穿過持久層,最后一直映射到數據庫表。真是一竿子捅到了底!

但是在復雜的應用中,ActionFormBean和PO是分離的,他們也不可能一樣。ActionFormBean是和網頁里面的Form表單一一對應的,Form里面有什么元素,Bean里面就有什么屬性。而PO和數據庫表對應,因此如果數據庫表不修改,那么PO也不會修改,如果頁面的流程和數據庫表字段對應關系不一致,那么你又如何能夠使用ActionFormBean來取代PO呢?

比如說吧,用戶注冊頁面要求注冊用戶的基本信息,因此HTML Form里面包含了基本信息屬性,于是你需要一個ActionFormBean來一一對應(注意:是一一對應),每個Bean屬性對應一個文本框或者選擇框什么的。

而用戶這個持久對象呢?他的屬性和ActionFormBean有什么明顯不同呢?他會有一些ActionFormBean所沒有的集合屬性,比如說用戶的權限屬性,用戶的組屬性,用戶的帖子等等。另外還有可能的是在ActionFormBean里面有3個屬性,分別是用戶的First Name, Middle Name, Last Name,而在我的User這個持久對象中就是一個 Name 對象屬性。

假設我的注冊頁面原來只要你提供First Name,那么ActionFormBean就這一個屬性,后來我要你提供全名,你要改ActionFormBean,加兩個屬性。但是這個時候PO是不應該修改滴,因為數據庫沒有改。

那么在一個完整的J2EE系統中應該如何進行合理的設計呢?

JSP(View) ——> ActionFormBean(Module) ——> Action(Control)

Hibernate ActionFormBean是 Web層的數據表示,它和HTML頁面Form對應,只要Web頁面的操作流程發生改變,它就要相應的進行修改,它不應該也不能被傳遞到業務層和持久層,否則一旦頁面修改,會一直牽連到業務層和持久層的大面積的代碼進行修改,對于軟件的可維護性和可擴展性而言,是一個災難,Actiont就是他的邊界,到此為止!

Action(Web Control) ——> Business Bean ——> DAO ——> ORM ——>DB而PO則是業務層和持久層的數據表示,它在業務層和持久層之間進行流動,他不應該也不能被傳遞到Web層的View中去,而 ActionServlet就是他的邊界,到此為止!

【編輯推薦】

  1. 分析Hibernate插入操作
  2. 剖析Hibernate批量更新
  3. 全面講解Hibernate二級緩存
  4. 講述Hibernate核心接口
  5. 概括Hibernate批量處理
責任編輯:佚名 來源: IT168
相關推薦

2009-09-27 09:46:45

Hibernate會話

2009-09-29 17:00:08

Hibernate c

2009-09-21 13:19:06

Hibernate s

2009-09-24 08:48:54

Hibernate技術

2009-06-30 14:08:00

Hibernate緩存

2009-06-02 17:18:10

hibernate框架簡介

2009-06-26 16:19:32

Hibernate實現

2009-06-12 14:40:38

Hibernate AHibernate接口

2012-02-08 14:24:35

HibernateJava

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2009-06-18 11:43:40

Hibernate uHibernate s

2009-06-02 14:46:26

Hibernate關系映射教程

2009-09-23 17:05:52

Hibernate S

2009-09-23 17:07:31

Hibernate C

2009-09-25 15:05:39

Hibernate事件

2009-09-27 16:51:40

Hibernate U

2009-06-29 08:48:41

Hibernate緩存

2009-09-21 13:05:18

Hibernate u

2009-09-28 15:47:59

Hibernate O

2009-09-23 16:39:51

Hibernate s
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本久久综合网 | 中文字幕动漫成人 | 日本午夜精品 | 日日夜夜天天 | 欧美一区二区三区一在线观看 | 一区中文 | 久久高潮 | 五月婷婷在线视频 | 日韩免费在线视频 | 国产高清精品一区二区三区 | 国产玖玖 | 久久中文字幕一区 | 国产精品久久在线观看 | 欧美一级在线观看 | 一区二区不卡高清 | 国产剧情一区 | 久久99精品久久久久久狂牛 | 国产三区av| 一区二区三区高清不卡 | 伊人网伊人网 | 亚洲欧美精品 | 久久综合激情 | 久久国产精99精产国高潮 | 中文字幕在线看 | 中文字幕 亚洲一区 | 精品国产一二三区 | 久久最新 | 91精品久久久久久久久久小网站 | 成人av免费播放 | 日韩久久久久久 | 中文字幕成人在线 | 粉嫩一区二区三区四区公司1 | 亚洲综合视频 | 天天久久 | 亚洲一区二区三区免费视频 | 日韩欧美不卡 | 久久99久久98精品免观看软件 | 亚洲国产高清在线观看 | 99久久精品国产一区二区三区 | 999久久久| 久久久久黑人 |