資源描述:
《hibernate常用api詳解++hql++sql》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、)hibernate常用API詳解分類:?Hibernate2013-05-2518:55?1251人閱讀?評(píng)論(0)?收藏?舉報(bào)轉(zhuǎn)自:http://blessht.iteye.com/blog/1327883hibernate常用API詳解以下示例均以兩張表為例:member和userinfo,member帳號(hào)信息表外鍵關(guān)聯(lián)userinfo用戶基本信息表,主鍵自動(dòng)生成即可?然后映射出的POJO如下:publicclassUserinfo??implementsSerializable{//primarykey????private?java.lang.Integer?id;????//
2、fields????private?java.lang.String?name;????private?java.lang.String?code;????private?java.lang.String?birthday;????private?java.lang.String?address;????private?java.util.Date?createTime;????private?java.lang.Integer?deleteFlag;?????//collections????private?java.util.Set?m
3、embers;?????????????????//省略?gettersetter}?publicclassMemberimplementsSerializable{//primarykey????private?java.lang.Integer?id;?????//fields????private?java.lang.String?loginCode;????private?java.lang.String?password;????private?java.lang.Integer?deleteFlag;?????//manytoone????private?com.bless.
4、model.Userinfo?fkUserinfo;??????????//省略gettersetter}????1、Hibernate提供多種方法查詢數(shù)據(jù)庫數(shù)據(jù)下面以一個(gè)最簡單的查詢?yōu)槔篠ELECT*FROMTABLE為例1-1簡單HQL語句查詢Hibernate提供了HQL查詢,HQL是Hibernate推薦語句,它屏蔽了不同數(shù)據(jù)庫SQL不兼容的問題,使用HQL寫的查詢語句在主流數(shù)據(jù)庫上都能執(zhí)行。執(zhí)行HQL需要?jiǎng)?chuàng)建Query對(duì)象:getSession().createQuery(hql語句);簡單HQL格式:FROMPOJO?對(duì)應(yīng)SQL語句:SELECT*FROMPOJO對(duì)應(yīng)的表名
5、?千萬注意:HQL語句中的表名和字段名不是數(shù)據(jù)庫的表名和字段名,而是對(duì)應(yīng)ORM映射POJO的類名和屬性名!?Java代碼??1.Query?query?=?baseDao.getQuery("FROM?Member");??2.List?lstM?=?query.list();??3.for?(Member?member?:?lstM)?{??4.System.out.println("id:"+member.getId()+"???fk_id:"+member.getFkUserinfo().getId());??5.}????結(jié)果:一句SQL將所有結(jié)果查詢出來?如果修
6、改一下for循環(huán)的代碼,查詢FK的name:?Java代碼??1.for?(Member?member?:?lstM)?{??2.System.out.println("id:"+member.getId()+"???fk_id:"+member.getFkUserinfo().getName());??3.}????結(jié)果:一句SQL查詢Member表,每一次for循環(huán)又發(fā)一句SQL查詢Userinfo表總結(jié):被查詢表中如果有外鍵關(guān)聯(lián),在執(zhí)行查詢時(shí)能將外鍵關(guān)聯(lián)字段的值查詢出來,但如果想查詢關(guān)聯(lián)表的其它字段會(huì)另外發(fā)SQL,這個(gè)特別要注意!??1-2簡單SQL語句查詢?Hibernate同樣
7、支持寫SQL,對(duì)原生SQL查詢執(zhí)行的控制是通過SQLQuery接口進(jìn)行的,通過執(zhí)行Session.createSQLQuery()獲取這個(gè)接口?Java代碼??1.SQLQuery?sql?=?baseDao.getSQLQuery("SELECT?*?FROM?member");??2.//查詢出的結(jié)果放到指定POJO中??3.sql.addEntity(Member.class);??4.List?lstM?=?