您现在的位置是:首页 > 正文

hibernate查询方式

2024-04-01 05:00:40阅读 2

 1、OID(主键)查询 
             使用get方法    Customer customer=session.get(Customer.class,1l);
             使用load方法  Customer customer=session.load(Customer.class,1l);


 2、对象导航检索: hibernate根据一个已经查到的对象,获得其关联对象的一种查询方式
             LinkMan linkman=session.get(LinkMan.class,1l);
            Customer customer=linkman.getCustomer();
    
  3、HQL检索:一种面向对象的方式的查询语言,语法类似sql。通过session.createquery()
        3.1 hql简单查询:
                Query query=session.createQuery("from Customer"); //Customer是类名
               List<Customer> list=query.list();
        3.2 hql排序查询:默认就是升序  或者在查询里加上 类里的属性
                 List<Customer> list=session.createQuery("from Customer").list();
                 List<Customer> list=session.createQuery("from Customer order by cust_id").list();
           //设置降序排列使用desc 升序使用asc 
             List<Customer> list=session.createQuery("from Customer order by cust_id desc").list();
         3.3 hql条件查询:
                按位置绑定
                     单条件查询
                              Query query=session.createQuery("from Customer where cust_name=?");
                              query.setParameter(0,"ck");
                               List<Customer> list=query.list();
                      多条件查询
                              Query query=session.createQuery("from Customer where cust_source=? and cust_name like ?");
                                query.setParameter(0,"某某 ");
                               query.setParameter(1,"c%");
                               List<Customer> list=query.list();
                按名称绑定
                          Query query=session.createQuery("from Customer where cust_source= :aaa and cust_name like :bbb");
                         query.setParameter("aaa","某某 ");
                         query.setParameter("bbb","程%");
                          List<Customer> list=query.list();
             3.4  hql投影查询:查询对象的某个或某些属性
                     查询单个属性
                              List<Object> list=session.createQuery("select c.cust_name from Customer c").list();
                      查询多个属性
                               List<Object[]> list=session.createQuery("select c.cust_name,c.cust_source from Customer c").list();
                     查询多个属性,但将属性封装进对象中,需要将为对象创建构造方法
                          List<Customer> list=session.createQuery("select new Customer(cust_name,cust_source) from Customer").list();
              3.5  hql分组查询:
                             List<Customer> list=session.createQuery("select count(*) from Customer").list(); //如果有多条记录
                             Object object=session.createQuery("select count(*) from Customer").uniqueResult(); //如果只有一条记录
                      分组统计
                     List<Object[]> list=session.createQuery("select cust_source,count(*) from Customer group by cust_source").list();
                      for(Object[] objects:list){
                       System.out.println(Arrays.toString(objects));
                           }
               3.6    hql分页查询:
                           Query query=session.createQuery("from LinkMan");
                           query.setFirstResult(0);
                           query.setMaxResults(10); 
                           List<LinkMan> list=query.list();

网站文章

  • 【第四章】

    笔记记录

    2024-04-01 05:00:32
  • 解决git每次拉取/提交代码时都需要输入用户名和密码的方法

    解决git每次拉取/提交代码时都需要输入用户名和密码的方法

    2024-04-01 05:00:22
  • 如何在移动端测试Vue项目?

    如何在移动端测试Vue项目?

    第一步,打开cmd,输入ipconfig 我们获取到方框内的端口号,比如 xx.xx.x.xxx 我们打开项目中的config/index.js ,将这个替换其中的host 比如我们之前需要的是localhost:8888/news.html 那么我们将服务运行起来之后,就变成了 xx.xx.x.xxx:8888/news.html 如果你觉得在手机浏览器上手动输入很麻烦,那么...

    2024-04-01 04:59:42
  • APP为什么用JSON协议与服务端交互:序列化相关知识

    APP为什么用JSON协议与服务端交互:序列化相关知识

    Avro支持的数据类型非常丰富,包括C++语言里面的union类型。SOAP具有安全、可扩展、跨语言、跨平台、支持多种传输协议,有广泛的群众基础,基于HTTP的传输协议使得SOAP在穿越防火墙时具有良...

    2024-04-01 04:59:34
  • 练习7-1 编写一个程序 实现大写字母转换成小写字母,小写字母转换成大写字母 热门推荐

    #include&lt;stdlib.h&gt; #include&lt;ctype.h&gt; #include&lt;stdio.h&gt; char to_lower(char c); int main() { int c; while((c = getchar()) != EOF) putchar(to_lower(c)); return 0; } ...

    2024-04-01 04:59:26
  • 设置PPT版式

    设置PPT版式

    1.点击视图,幻灯片母版2.选中某个PPT母版,可进行编辑转载于:https://www.cnblogs.com/RogerLu/p/11495353.html

    2024-04-01 04:58:49
  • mac笔记本修改 mysql 的密码

    第一种mysql版本:5.7.171.首先我们要关闭mysql服务sudo /usr/local/mysql/support-files/mysql.server stop2.我们要用安全模式启动mysqlsudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables3.使用root账号登录mysql服务/usr/local/mys...

    2024-04-01 04:58:42
  • Synergy两台电脑使用同一个鼠标和键盘 热门推荐

    Synergy两台电脑使用同一个鼠标和键盘 热门推荐

    分享一款共享鼠标和键盘的软件,即两台电脑使用同一个鼠标和键盘!Synergy是一款跨平台的键盘鼠标共享软件,日前我们提供了Synergy 和Synergy 64位的Win版本、Synergy Mac版...

    2024-04-01 04:58:35
  • 关于音视频测试的一点建议

    作者:罗必达,腾讯音视频实验室质量平台组组长,高级工程师。早年在微软从事移动测试开发,先后参与了 Windows Live Messenger 和 Bing Mobile 两个项目的测试工作。2011 年加入腾讯,转型音视频技术研究,从事建立音视频技术测试体系的工作,并负责 QQ 音视频通话以及腾讯云互动直播 SDK 的底层音视频引擎的测...

    2024-04-01 04:57:53
  • 2020年终总结

    aaa

    2024-04-01 04:57:46