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
新聞熱點
疑難解答