关键词:
条件查询
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... 查看详情