日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询

發布時間:2023/12/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hql語句和sql語句不同,當我們使用hql語句查詢時,要把SQL語句的表寫成 實體類的類名,字段寫成實體類的屬性

  • 基本查詢:查出數據庫中所有的數據
    代碼如下:
  • //基本查詢,查詢所有的實體@Testpublic void test1() {//獲取當前線程的sessionSession s = HibernateUtils.getCurrentSession();Transaction t = s.beginTransaction();Query query = s.createQuery("from Customer");List list = query.list();for(Object o : list) {System.out.println(o);}t.commit();}

    我們應當注意這段代碼:

    Query query = s.createQuery("from Customer");

    執行的hql語句是:from Customer
    但如果我們使用sql,語句是:

    select * from cst_customer(cst_customer是我數據庫中的表名)

    其中我們可以發現,使用hql只要把sql的表名換成實體類名就可以了,而且 select * 都可以不要

  • 條件查詢:按條件查詢出數據庫的數據
    代碼如下:
  • //條件查詢@Testpublic void test2() {Session s = HibernateUtils.getCurrentSession();Transaction t = s.beginTransaction();//Query query = s.createQuery("from Customer where custName = ?");//取別名Query query = s.createQuery("from Customer where custName = :custName");//query.setString(0, "23");//query.setParameter(0, "23");query.setParameter("custName", "23");List list = query.list();for(Object o : list) {System.out.println(o);}t.commit();}

    當我們使用條件查詢時,我們不僅要把表名換成實體類,還要把數據庫的列名換成屬性名:

    from Customer where custName = ?

    然后使用下面代碼設置參數:

    query.setString(0, "23");

    可以發現我把這些代碼注釋掉了,這些方法不夠具體,我們可以使用別名設置參數,如下代碼

    from Customer where custName = :custName

    :后面的是別名,我們給參數賦值時可以使用一下代碼就不用考慮具體參數的類型了

    query.setParameter("custName", "23");
  • 排序插敘:order by
  • //排序查詢@Testpublic void test3() {Session s = HibernateUtils.getCurrentSession();Transaction t = s.beginTransaction();//根據custId排序Query query = s.createQuery("from Customer order by custId");List list = query.list();for(Object o : list) {System.out.println(o);}t.commit();}
  • 分頁查詢:使用 order by ,在后面加上屬性名就可以了
  • @Testpublic void test4() {Session s = HibernateUtils.getCurrentSession();Transaction t = s.beginTransaction();//查詢全部數據,每頁顯示兩條數據Query query = s.createQuery("from Customer");query.setFirstResult(0);query.setMaxResults(2);List list = query.list();for(Object o : list) {System.out.println(o);}t.commit();}
  • 投影查詢: 當我們在查詢實體時,只需要部分實體的屬性。并且希望返回的結果使用實體類封裝,而不是Object[]
    使用步驟:1、查詢語句需要使用new關鍵字
    2、在實體類中添加對應參數列表的構造函數
  • 代碼如下:

    @Testpublic void test5() {Session s = HibernateUtils.getCurrentSession();Transaction t = s.beginTransaction();Query query = s.createQuery("select new domain.Customer(custId,custName) from Customer");List list = query.list();for(Object o : list) {System.out.println(o);}t.commit();}

    在實體類中添加對應參數列表的構造函數,注意無參構造函數實體類中一定不能省

    public Customer(Long custId, String custName) {this.custId = custId;this.custName = custName;}

    注意在使用hql語句時,實體類要加上路徑,因為在一個工程里,當有多個相同類名,就不知道創建那個實體類了

    總結

    以上是生活随笔為你收集整理的Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 医生强烈淫药h调教小说视频 | 成人午夜精品视频 | 无码人妻丰满熟妇区96 | 中文字幕日韩一区 | 九九免费| 欧美色影院 | 亚欧中文字幕 | 被两个男人吃奶三p爽文 | 成年人网站免费 | 黄色不雅视频 | 久久视频在线观看 | 女人叫床很黄很污句子 | 91成年人网站 | 成人拍拍拍 | 亚洲自偷自偷偷色无码中文 | 亚洲欧美强伦一区二区 | 欧洲精品一区 | 久久日本视频 | 伊人网在线视频 | 朝桐光av在线 | 99热这里精品 | 国产成人91精品 | 一级性视频 | 日韩一区二区三区免费视频 | 毛片久久久久久久 | 免费成人高清 | 夜久久| 成人av一区二区在线观看 | 91素人约啪 | 亚洲精品一区二区三区区别 | 亚洲制服另类 | 欧美先锋影音 | 小sao货大ji巴cao死你 | 爱插美女网 | 精品一区二区不卡 | 日韩中文字幕在线一区 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 少妇丰满尤物大尺度写真 | 日日夜夜免费 | 一级片视频免费 | 黑料av在线 | 亚洲精品在线不卡 | 男女草逼网站 | 性chinese天美传媒麻 | 97久久人人 | 草草地址线路①屁屁影院成人 | 91av俱乐部 | a毛片毛片av永久免费 | 久久一区二区三区视频 | 97人妻一区二区精品视频 | 日本久久久久久久久 | 国产一区视频在线 | 校园春色综合网 | 操操操综合 | 日韩美女爱爱 | 女上男下动态图 | 成年视频在线观看 | 色香影视 | 精品久久五月天 | 天堂网视频在线 | 久久久久久国产 | 午夜精品久久久久久久99 | 亚洲欧美日韩久久 | 男男做性免费视频网 | 岛国av电影在线观看 | 国产成人av一区 | xxx麻豆 | 脱美女衣服亲摸揉视频 | 成年网站 | 国产日韩在线视频 | av在线影音 | 性色av蜜臀av浪潮av老女人 | 日韩欧美国产一区二区三区在线观看 | 久草资源| 精品国产一区二区三区久久 | 91色偷偷 | 日本作爱视频 | 456亚洲影视 | 亚洲国产三级 | 成人av免费网站 | 亚洲伦理自拍 | gai免费观看网站外网 | 在线97| 欧美亚洲欧美 | 影音先锋成人资源网站 | 精品66| 中文字幕乱码一区二区三区 | 国产香蕉在线观看 | 黑人三级视频 | 黄色片一区二区三区 | 成人污污视频 | 男男gay同性三级 | 亚洲 欧美 国产 另类 | 在线免费看黄色片 | 久久精品超碰 | 天堂av在线免费 | 三级免费观看 | 国产精品久久av无码一区二区 | 国产一级大片在线观看 |