HQL和Criteria
HQL:
public boolean doCreate(Dept vo) throws Exception {
return this.sessionFactory.getCurrentSession().save(vo) != null;
}
@Override
public boolean doUpdate(Dept vo) throws Exception {
String hql = "UPDATE Dept AS d SET d.title=? WHERE d.deptid=?";
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, vo.getTitle());
query.setInteger(1, vo.getDeptid());
return query.executeUpdate() > 0;
}
@Override
public boolean doRemove(Integer id) throws Exception {
String hql = "DELETE FROM Dept AS d WHERE d.deptid=?";
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
query.setInteger(0, id);
return query.executeUpdate() > 0;
}
@Override
public Dept findById(Integer id) throws Exception {
return (Dept) this.sessionFactory.getCurrentSession().get(Dept.class,
id);
}
@SuppressWarnings("unchecked")
@Override
public List<TCatalogInfo> findAll() throws Exception {
String hql = "FROM TCatalogInfo AS tc";
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
return query.list();
}
@SuppressWarnings("unchecked")
@Override //分页
public List<TCatalogInfo> findAll(String column, String keyWord,
Integer currentPage, Integer lineSize) throws Exception {
String hql = "FROM TCatalogInfo AS tc WHERE tc." + column + " LIKE ?";
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, "%" + keyWord + "%");//查询的关键字
query.setFirstResult((currentPage - 1) * lineSize);//开始页
query.setMaxResults(lineSize);//最大加载的页数
return query.list();
}
@Override
public Integer getAllCount(String column, String keyWord) throws Exception {
String hql = "SELECT COUNT(tc.cid) FROM TCatalogInfo AS tc WHERE tc."
+ column + " LIKE ?";
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, "%" + keyWord + "%");
return ((Long) query.uniqueResult()).intValue();
}
Criteria:
public List<Admin> findAll() throws Exception {
Criteria criteria = this.sessionFactory.getCurrentSession()
.createCriteria(Admin.class);
return criteria.list();
}
@SuppressWarnings("unchecked")
@Override
public List<Admin> findAll(String column, String keyWord,
Integer currentPage, Integer lineSize) throws Exception {
Criteria criteria = this.sessionFactory.getCurrentSession()
.createCriteria(Admin.class);
criteria.add(Restrictions.like(column, "%" + keyWord + "%"));
criteria.setFirstResult((currentPage - 1) * lineSize);
criteria.setMaxResults(lineSize);
return criteria.list();
}
@Override
public Integer getAllCount(String column, String keyWord) throws Exception {
Criteria criteria = this.sessionFactory.getCurrentSession()
.createCriteria(Admin.class);
ProjectionList plist = Projections.projectionList();
plist.add(Projections.rowCount(), "count");
criteria.setProjection(plist); // 增加统计函数集合
criteria.add(Restrictions.like(column, "%" + keyWord + "%"));
return ((Long) criteria.uniqueResult()).intValue();
}
HQL和Criteria的更多相关文章
- 【JAVAEE学习笔记】hibernate04:查询种类、HQL、Criteria、查询优化和练习为客户列表增加查询条件
一.查询种类 1.oid查询-get 2.对象属性导航查询 3.HQL 4.Criteria 5.原生SQL 二.查询-HQL语法 //学习HQL语法 public class Demo { //基本 ...
- JAVAEE学习——hibernate04:查询种类、HQL、Criteria、查询优化和练习为客户列表增加查询条件
一.查询种类 1.oid查询-get 2.对象属性导航查询 3.HQL 4.Criteria 5.原生SQL 二.查询-HQL语法 //学习HQL语法 public class Demo { //基本 ...
- hibernate HQL和Criteria
package com.test; import java.util.Date; import java.util.List; import org.hibernate.Query; import o ...
- HQL和Criteria(转)
HQL(Hibernate Query Language) 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写):HQL中查的是对 ...
- 比较HQL、Criteria、Native-SQL这三者做查询的区别,以及应该如何进行选择?
HQL功能很强大,适合各种情况,但是动态条件查询构造起来很不方便: Criteria 最适合动态查询,但不太适合统计查询,QBE还不够强大.只适合简单的查询: Native-SQL可以实现特定的数据库 ...
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
- grails的criteria和hql查询
grails在查询方面也保留了hibernate的hql和criteria查询功能.hql自然不必多说基本不会有什么变化,grails的criteria查询在hibernate上面做了微调使用起来更加 ...
- Hibernate框架Criteria查询
本文章适合一些初学者 一.使用Criteria查询数据 1.条件查询 1.1:使用Criteria查询的步骤 1.使用Sess ...
- 2018.11.13 Hibernate 中数据库查询中的Criteria查询实例
Criteria是面向对象的无语句查询 Demo.java package com.legend.b_criteria; import java.util.List; import org.hiber ...
随机推荐
- UVa 1149 Bin Packing 【贪心】
题意:给定n个物品的重量l[i],背包的容量为w,同时要求每个背包最多装两个物品,求至少要多少个背包才能装下所有的物品 和之前做的独木舟上的旅行一样,注意一下格式就好了 #include<ios ...
- mk文件剖析
一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...
- Linux Shell编程(2): for while
; i < ; i++)) do echo "current number is $i" done SERVICES="80 22 25 110 8000 23 2 ...
- LeetCode: Combination Sum I && II && III
Title: https://leetcode.com/problems/combination-sum/ Given a set of candidate numbers (C) and a tar ...
- Oracle 课程八之性能优化之Oracle SQL Trace
一. SQL_TRACE 当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL ...
- cocos2d anchor point 锚点解析
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的.而在cocos2d中决定一个 图片的位置是由两个维度 一个 ...
- Python字典增删操作技巧简述
Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技 ...
- Android应用启动时间及启动日志获取方法
1. Android应用中,可以使用如下方式进行应用启动时间的查看 2. 启动日志获取方法:
- 关于Windows 7的64位系统不兼容某些控件的问题
我的问题是vsflex7.ocx 不能在64位系统下运行,导致软件的一个涉及到这个控件的功能出错.如下: 解决的办法基本思路是把这个控件注册一下.然后就可以了.就是这个控件: 目录中没有自己下载个. ...
- 【九度OJ】题目1078-二叉树遍历
题目 这道题和后面的两道题,题目1201和题目1009,主要内容是对递归的实现,在逻辑上,递归是容易理解的,这种实现方式和我们思考的方式是相吻合的.但是在转换为计算机语言时,要明确告知计算机应该从哪里 ...