分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

hibernate查询方式(三)

发布时间:2023-09-06 01:34责任编辑:苏小强关键词:暂无标签

QBC查询 (Query By Criteria)

*****QBC查询有三个特点   

            **查询时不写sql语句 而是用方法来查询

            **操作实体类和属性

            **通过criteria对象来实现

  1.查询所有

//创建对象Criteria criteria = session.Criteria (Student.class);//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getid()+"::::"+student.getname());} 

2.条件查询

//创建对象Criteria criteria = session.Criteria (Student.class);//add方法里面使用类的方法实现条件查询 第一个参数是属性 ?第二个是属性值 criteria.add(Restrictions.eq("id",1)); criteria.add(Restrictions.eq("name","张三"));//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getid()+"::::"+student.getname());} 

3.条件查询之模糊查询

//创建对象Criteria criteria = session.Criteria (Student.class);//add方法里面使用类的方法实现条件查询 第一个参数是属性 ?第二个是属性值 criteria.add(Restrictions.eq("name","张%"));//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getname());} 

4. 排序查询

//创建对象Criteria criteria = session.Criteria (Student.class);//设置对那个属性进行排序,设置排序规则 ?升序Order.asc("id") criteria.addOrder(Order.desc("id"));//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getid()+"::::"+student.getname());} 

5.分页查询

//创建对象Criteria criteria = session.Criteria (Student.class);//2设置分页数据//2.1设置开始位置 criteria.setFirstResult(0);//2.2每页显示记录数 criteria.setMaxResults(3);//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getid()+"::::"+student.getname());} 

6.统计查询(类似hql中的聚集函数查询)

统计表中记录数

//创建对象Criteria criteria = session.Criteria (Student.class);//2设置操作 criteria.setProjection(Projections.rowCount());//调用方法得到结果Object obj = ?criteria.uniqueResult();long longO = (Long)obj;int count ?= longO.intValue();syso(count);

7.离线查询

在ssh框架中 离线查询可以用在action中 在dao层调用方法也可以查询数据库

//创建对象 ?DetachedCriteria detachedCriteria = ??????????????????????????????????????DetachedCriteria.forClass(Student.class); ?//最终执行的时候才需要session ?????Criteria criteria = ??????????????????????????????detachedCriteria.getExecutableCriteria(session);//调用方法得到结果List<Student> list ?= criteria.list();for(Student student : list){syso(student.getid()+"::::"+student.getname());} 

 自己感觉hql查询好用些 单凭个人喜好来嘛 因为不同的项目或公司用的技术可能不一样 尽量都掌握

hibernate查询方式(三)

原文地址:https://www.cnblogs.com/alex96/p/8215140.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved