关于hibernate的查询
?
為什么建議hibernate查詢全部字段
一般而言,要查詢什么字段就查詢什么字段,不要select * from表,但是在hibernate,我們其實可以不遵循這個規則,建議我們把所有屬性都查詢出來(可以封裝成一個實體類),這樣就省去了二次封裝的過程,雖然浪費了一些資源,但利大于弊。當然如果一定要查詢單個字段的話,那么只能從list中提取數據
?
hibernate的uniqueResult方法
如果你確定查詢的是唯一的結果的話,那么建議使用uniqueResult方法,該結果返回一個對象(例如在驗證用戶登錄中可以使用)
?
為什么說hibernate簡化了sql的查詢過程
看一個例子
在三表查詢中?查詢某選課號為3的學生的姓名,這里用到了三表查詢,如果使用原生的sql語句要用到三級查詢,而使用hql語句的話則是一句語句(用面對對象的思想)
select?student.name,student.age?from?stutocourse where id=1;
關于hibernate的分頁
session.createQuery("from Student").setFirstResult(i).setMaxResults(j).list();
其中setFirstResult()中的參數是從第幾條開始,setMaxResults()中的參數是取幾條。
查詢后的返回對象的類型
如果查詢的是一個字段的話list就存放的是一個object,如果查詢的是多個字段的話那么存放的是object[];
?
關于hibernate的參數查詢
可以使用query.setString("位置","值")來設置?這也意味著可以提取為一個工具類?另外一個方法是where?name=:name的寫法?其賦值的方法是 .setString("name","值")本質是都是一樣的
?
特別注意
hql語句中沒有select *?的寫法?這是與sql不一樣的
?
關于hibernate提供的更新刪除的方法
executeUpdate是hibernate提供的方法該方法返回的是影響的行數;
?
轉載于:https://www.cnblogs.com/zhongyimeng/p/9751715.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的关于hibernate的查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Number Theory Proble
- 下一篇: 四种线程池