【JavaWeb】服務器Hibernate、Struts2獲取數據庫數據並傳遞出去的總結

##所用到的框架##
Hibernate、Struts2

##整個過程##
1、通過Hibernate的逆向工程生成數據庫表的bean映射文件

2、新建包,形成基本架構

3、Dao的實現類

4、Service的實現類調用Dao,把數據封裝成JSONArray數據返回給Aciton

5、Action帶哦用Service,在struts.xml配置result,類型爲json

##遇到的問題##
1、Hibernate

a.找不到資源文件
這裏寫圖片描述
解決辦法是hibernate.cfg.xml裏的mapping,刪除逆向生成的hibernate.cfg.xml裏的下圖部分
這裏寫圖片描述

b.報錯說沒用映射,可能是在初始化SessionFactory的時候沒有把bean加到addClass裏面

c.由於要用到給sql語句的設置參數(查詢條件)要session.createSQLQuery(sql)方法,session.createQuery(sql)無法設置參數,但是session.createSQLQuery(sql)返回query得到的List是List<Object>而不是目標bean的List(List<bean>),需要在獲取結果錢使用query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)

2、Json

要把得到的List轉換爲Json格式的數據傳遞出去,需要把List轉爲Json格式,List對應的Json格式是JSONArray而不是JSONObject,在配置Action時要配置result類型爲type=“json”,配置如下
這裏寫圖片描述

傳遞出去的格式爲
這裏寫圖片描述

配置時要注意幾點

①要設置root爲你要傳輸的屬性名稱,不然會多出一個key,如下圖
這裏寫圖片描述

②要用exclude(不知道爲什麼用include就會沒數據)

aciton傳遞json的配置到http://blog.csdn.net/itdada/article/details/21344985去看

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