hibernate的条件查询的几种方式+查询所有的记录

     2022-03-27     160

关键词:

条件查询

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):指定一次最多查询的对象数量。

查询所有记录:

/**
  * 查询所有的记录
  */
 public static List selectAll() {
  List list = null;
  try {
   session = HibernateSessionFactory.getSession();
   Transaction tran = session.beginTransaction();
   Query q = session.createQuery("from User1");
   list = q.list();
   tran.commit();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   HibernateSessionFactory.closeSession();
  }
  return list;
 }

 

hibernate检索查询的几种方式(hql,qbc,本地sql,集成spring等)

1.非集成Springhibernate的检索方式,主要有以下五种。        1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。)        2.OID检索方式。(按照对象的OID来... 查看详情

hibernate有哪几种查询数据的方式?

是一道面试题,最好有文字说明的,有哪位仁兄可以帮我解决一下吗?支持条件查询,连接查询,分页查询,分组查询,内置函数和自定义函数查询(SUN(),MIN(),MAX()),子查询参考技术A有hql查询sql查询还有传个类去加载数据 参... 查看详情

hibernate有几种查询方式

...数和自定义函数查询(SUN(),MIN(),MAX()),子查询参考技术AHIbernate主要常用有三种查询方式HQL、QBC、SQL:1).HQL(HibernateQueryLanguage):hibernate数据查询语言;2).QBC(QueryByCriteria):规则查询3).SQL:原生的SQL语句(较为复杂的情况下使... 查看详情

mybatis模糊查询的几种实现方式(代码片段)

...5.建议使用的方式二、用mybatis出现的一些问题1.一般查询条件的使用2.日期查询条件的使用3.排序问题总结前言柚子今年才开始写博客,今天对以前笔记有关MyBatis模糊查询的几种实现方式进行一番总结~提示:以下是本篇文... 查看详情

hibernate查询有几种方式

...数和自定义函数查询 参考技术BHQL、Criteria、SQL 参考技术CHIbernate主要常用有三种查询方式HQL、QBC、SQL:1).HQL(HibernateQueryLanguage):hibernate数据查询语言;2).QBC(QueryByCriteria):规则查询3).SQL:原生的SQL语句(较为复杂的情况下使... 查看详情

spring中操作hibernate的几种方式

1、直接操作模版方式HQL: //通过spring的模版方式来操作Hibernate的HQL语句 returnthis.getHibernateTemplate().find("fromCustomer");2、直接操作模版方式,对象导航查询:returnthis.getHibernateTemplate().get(Customer.class,id);3、通过获取Session来进行原始H 查看详情

三jpa复杂查询的几种方式(代码片段)

多条件查询有很多方式接口命名策略按照JPA的命名策略命名,就可以实现单条件或者多条件的等值查询命名策略要以find或者findAll开头,单字段查询,find后跟字段的属性名字,参数传入字段的属性类型,多个条件中间用and区分开... 查看详情

hibernate查询sql结果行数的几种方法

一、前言这个东西,难度几乎没有,就是繁琐。一条简单的selectcount(*)fromtable_name都能有多种书写方式。总是忘,这里记录下。一、通过Criteria查询 CriteriacriteriaCount=getCriteria();criteriaCount=criteriaCount.add(Restrictions.eq("dispatchTaskI... 查看详情

hibernate有哪几种查询数据的方式

HIbernate主要有三种查询方式HQL、QBC、SQL:1).HQL(HibernateQueryLanguage):hibernate数据查询语言;2).QBC(QueryByCriteria):规则查询3).SQL:原生的SQL语句(较为复杂的情况下使用)想要详细了解的可以看一下下面的几篇文章:QBC数据查询H... 查看详情

elasticsearch的几种查询方式及其参数说明

...的分片数hits.total:查询结果的数量hits.max_score:对于查询条件的匹配度,分数越高越匹配hits.hits:所有匹配到的数据     "_index":所在索引     "_type":对应的类型   &... 查看详情

关于在dwz使用ssh后台查询的几种方式

1.查询所有记录,并以列表形式查询DaoImpl1publicPageBeanqueryByPage(Stringhql,List<Object>listobj,intpageSize,intpage){2try{3SQLQueryquery=this.getHibernateTemplate().getSessionFactory().getCurrentSession().crea 查看详情

hibernate有那几种查询数据的方式

Sql、Criteria,objectcomptositionHql:1、属性查询2、参数查询、命名参数查询3、关联查询4、分页查询5、统计函数参考技术Acriteriaload 查看详情

参数为空取全部数据的几种做法

润乾报表中支持用户通过参数对数据过滤,而当多个条件联合查询时,如果某个条件没有输入值,用户会希望该条件失效,也就是条件为空则视为没有这个条件,取出所有满足其它条件的数据。例如,按照地区查询,参数值输入... 查看详情

关于sql链接查询的几种方式

...M子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。二、基本语法与方法SQL-92标准所定义的FROM子句的连接语法格式为:FROMjoin_tablejoin_typejoin_table[ON(join_condition)]其中joi... 查看详情

sql分页查询的几种方式

需求:查询表dbo.Message,每页10条,查询第2页1:TOP()SELECTTOP(20)*FROMdbo.MessageWHERECodeNOTIN(SELECTTOP(10)CodeFROMdbo.Message)2:BETWEEN* AND* , Row_Number()OVER(ORDERBY*)ASrowNum SELECT*,ROW_NU 查看详情

mybatisplus分页查询的几种方式(代码片段)

publicRmoreCompany(JSONObjectparams)intpageNum=params.getIntValue("pageNum");intpageSize=params.getIntValue("pageSize");if(pageSize==0)pageSize=20;LonguserId= 查看详情

mybatis进行模糊查询的几种方式

mapper文件:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.joymeng.war.db.da 查看详情

总结mysql模糊查询的几种方式(代码片段)

总结下开发过程中用过模糊查询功能所用的一些东西,还有就是在建表时一定要考虑完善在建表,否则后期数据量大了在改表会非常的麻烦,请不要为了能够尽快用表而匆匆创建。在这也是给自己一个警醒,以后不再犯。#select... 查看详情