2019独角兽企业重金招聘Python工程师标准>>>

1、  第一种,用?占位符,如:
//登录(用?占位符)public List<UserPO> LoginUser(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();String hql = "from UserPO where name = ? and pwd= ?";Query query = session.createQuery(hql);query.setString(0, up.getName());query.setString(1, up.getPwd());List<UserPO> list = query.list();session.close();return list;}2、用“:+命名”占位符,如:
//登录(用":命名"占位符)public List<UserPO> LoginUser2(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();String hql = "from UserPO where name = :n and pwd= :p";Query query = session.createQuery(hql);query.setString("n", up.getName());query.setString("p", up.getPwd());List<UserPO> list = query.list();session.close();return list;}2.1、使用这种占位符还可以这样设值,如://登录(用":命名"占位符,用setParameter设值)public List<UserPO> LoginUser3(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();String hql = "from UserPO where name = :n and pwd= :p";Query query = session.createQuery(hql);query.setParameter("n", up.getName());query.setParameter("p",up.getPwd());List<UserPO> list = query.list();session.close();return list;}使用这种方式不需要写明映射的类型,Hibernate会通过配置自动给我们转,但是由于Hibernate有两种日期格式:Date和TIMESTAMP,所以对于日期类型必须写明映射的类型。写法: 3、按照对象进行参数绑定,如://登录(用":命名"占位符,用setProperties设值,命名参数必须要与被绑定的属性名相同)public List<UserPO> LoginUser4(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();String hql = "from UserPO where name = :name and pwd= :pwd";Query query = session.createQuery(hql);query.setProperties(up);List<UserPO> list = query.list();session.close();return list;}
4、使用条件查询(Criteria),如://登录(用条件查询 Criteria)完全脱离sql语句和hql语句public List<UserPO> LoginUser5(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();Criteria cri = session.createCriteria(UserPO.class);cri.add(Restrictions.eq("name", up.getName()));cri.add(Restrictions.eq("pwd", up.getPwd()));List<UserPO> list = cri.list();session.close();return list;}5、离线条件查询,如:
//登录(用离线条件查询 DetachedCriteria)public List<UserPO> LoginUser6(UserPO up)throws Exception{Session session = HibernateSessionFactory.getSession();DetachedCriteria dc = DetachedCriteria.forClass(UserPO.class);dc.add(Restrictions.eq("name", up.getName()));dc.add(Restrictions.eq("pwd", up.getPwd()));Criteria cri = dc.getExecutableCriteria(session);List<UserPO> list = cri.list();session.close();return list;}使用离线可以将其写在业务层,以参数的形式传入,以减少DAO的代码。
6、分页查询:分页查询是数据库应用中的处理方式,query和criteria接口都提供了用于分页查询的方法:
1)  setFirstResult(int):指定从哪一个对象开始查询,参数是索引位置,从0开始。
2)  setMaxResult(int):指定一次最多查询的对象数量。

转载于:https://my.oschina.net/abbchina/blog/712289

Hibernate的条件查询的几种方式相关推荐

  1. Hive查询的18种方式

    前言 相信大家一定对 Hive 不陌生!Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL).Hive的优点是学习成本低,可以通 ...

  2. Hive查询的18种方式,你都学会了吗?

    前言 大家一定对Hive不陌生吧!Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL).Hive的优点是学习成本低,可以通过类似SQ ...

  3. MyBatis实现模糊查询的三种方式

    MyBatis实现模糊查询的三种方式 准备 模糊查询 方式一 方式二 方式三 由于#{}是占位符本身,自带单引号,所以在模糊查询时需要一些技巧. 准备 数据库表 bean 模糊查询 以查询出所有用户名 ...

  4. Java里模糊查询的英文_MyBatis实现模糊查询的几种方式

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...

  5. tkmybatis通用mapper实现在使用Example进行查询的几种方式

    如下列举四种方式,但是不止四种哦. 其中weekend方式需要升级jdk到1.8及以上. 废话不代码! 首先定义数据库表映射类: public class MybatisDemo {private L ...

  6. mybatis一对多查询的两种方式

    user 和order 对象 package com.itheima.mybatis.pojo;import java.io.Serializable; import java.util.Date;p ...

  7. mysql多表查询有几种方法_多表查询有几种方式

    多表查询有3种方式,分别是:1.传统方式,包括左外连接查询,右外连接查询 ,完全外链接查询:2.子查询方式,包括单行查询,多行查询:3.聚合查询方式,包括求和,平均查询,记录总数. 多表查询有3种方式 ...

  8. html多条件检索折叠,八种方式实现多条件匹配

    围观的市民刘先生表示:我活了二十多年,看见斗图的比较多,这么无聊斗Excel使用技巧的第一次见! 为了更好的装逼,哦!不!是为了更好的分享多条件匹配的技巧,今天和大家分享如何用八种方式实现多条件匹配! ...

  9. 【mybatis学习记录】mybatis的各种查询 一对一关联查询(4种方式) 一对多(2种方式)

    文章目录 一对一 方式一: 方式2 方式3 方式4 一对多查询(2种方式) 方式2 一对一 如:通过订单id查询订单的时候,将订单关联的用户信息也返回. 首先建库建表: 新建实体类: @Builder ...

最新文章

  1. React Native
  2. 选择最好用的PyCharm IDE
  3. Elasticsearch 之(24)IK分词器配置文件讲解以及自定义词库
  4. DEDE文章列表加上序号效果
  5. C# 重写WndProc 消息循环
  6. java如何读取自定义log4j2_spring boot自定义log4j2日志文件的实例讲解
  7. 【javascript高级教程】JavaScript Number 对象
  8. 为什么用链路聚合_H3C ComwareV7平台网络设备可靠性配置——链路聚合
  9. sap 测试数据生成报表
  10. 排序算法之八 桶排序(C++版本)
  11. 帆软控件焦点事件设置可用性
  12. 服务器专用影子系统,试试最牛X的影子系统!瞬间创建N个账号
  13. KY-RTI分布仿真技术:第五章 Qt程序设计
  14. 音质好的无线蓝牙耳机品牌?盘点音质超好的蓝牙耳机推荐
  15. 【JavaScript打印100,1000,10000 ......内的素数】自动打印素数
  16. Data Mining Machine Learning学习笔记 机器学习入门笔记 之jieba分词(中文分词)(二)
  17. 敏捷组织转型之路-杨锋镝
  18. point-wise element-wise
  19. 记笔记,手写与打字哪个更有效?
  20. 学习太极创客 — ESP8226 (七)JSON 数据通讯 一

热门文章

  1. 笔记本电脑字母键盘总是打出数字_笔记本电脑,这些情况都是键盘坏了,换了就能好...
  2. 分享一下python入门知识点-输入与输出教程,不喜勿喷
  3. step在c语言中什么作用,C语言step-by-step(二)(数据类型)
  4. 单片机会被淘汰吗?单片机现在还有用吗?
  5. eclipse提示jre_给新手 Java 开发者的 7 点提示 | Linux 中国
  6. PTA基础编程题目集-7-32 说反话-加强版
  7. HDU2899(二分查找+or+模拟退火算法)
  8. linux 简单dns搭建,搭建一个简易的DNS服务
  9. 计算机应用开设学校 四川,成都计算机类专业开设的院校有哪些
  10. 0x41.数据结构进阶 - 并查集