struts+hibernate例子(原創)

hibernate+struts結合簡單例子
作者:雨傘(geezer)
2004/11/12

上次介紹了hibernate的基本知識,現在我們將它用在實際項目開發中,
我們用struts與它結合來做一個簡單的應用。例子所需要的lib文件我都沒有放進去,因爲太大了(壓縮以後近10M)論壇不讓上傳,呵呵,你們自己把struts與hibernate的jar文件放進去吧。

配置環境:
HIBERNATE 2.1(上次遇到有朋友因爲版本不同折磨了大半天,這次注意了)
STRUTS 1.1
JBUILDER X
MYSQL 4.1.7


其實hibernate與struts結合起來是很不錯的選擇,而且使用與配置起來都簡單,幾步就完成了。
例子壓縮包裏一共有5個JAVA類文件(BeanItem.java,h_bean.java,h_connection.java,Init.java,MainServlet.java),


BeanItem.java是一個Bean,從數據庫取出結果以後創建相應總記錄數的BeanItem數組,然後再壓入request對象中,最後利用RequestDispatcher(直接用ActionMapping對象的findForward方法也可以,只要在struts-config加了<forward>標籤既可)傳會JSP頁面(ok.jsp)。
h_bean.java是hibernate與數據庫表映射的類,因爲上次我已經介紹過了hibernate的基本知識所以這裏就不解釋了。
h_connection.java是管理hibernate的類,取SessionFactory用getConnection方法,注意裏面有一個static塊,裏面查詢JNDI樹得到綁定的SessionFactory實例。
Init.java是Struts的一個擴展類,繼承自PlugIn,將這個類加進Struts的配置文件(struts-config.xml裏的<struts-config>里加上
<plug-in className="database.Init" />這一行既可),以後每次啓動服務器的時候都會先執行這個類,當然只執行一次,因爲hibernate取SessionFactory的時候要花久一點的時間,所以爲了不每次使用時都去重新生成SessionFactory,我們將它改成PlugIn,然後綁在目錄樹中,這樣上下文其他地方需要用到的時候直接lookup就可以了。裏面有init與destroy方法,也就是說在容器停止的時候可以自動在destroy方法裏刪除。(好象有點羅嗦了 )
MainServlet.java是Struts的Action子類,例子裏的操作都在這裏完成,包括取SessionFactory,取數據,轉向等等。


爲了與struts結合使用,這裏需要增加一個hibernate.cfg.xml文件(其實有好幾種方法,這裏只講這一種常用的),放在classes目錄下,注意裏面的
<mapping resource="database/h_bean.hbm.xml"/>
每一個表的映射都要添加進這個文件裏,新增一行既可。

例子下載:http://www.phpx.com/happy/attachment.php?s=&postid=656452

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章