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 ...
随机推荐
- Codeforces Round #243 (Div. 2) C. Sereja and Swaps(优先队列 暴力)
题目 题意:求任意连续序列的最大值,这个连续序列可以和其他的 值交换k次,求最大值 思路:暴力枚举所有的连续序列.没做对是因为 首先没有认真读题,没看清交换,然后,以为是dp或者贪心 用了一下贪心,各 ...
- 函数buf_LRU_old_adjust_len
调整LUR_old位置,放到八分之五位置,是新的,后八分之三是旧的 512个页全变成新的,然后从后往前数,数到8分之3,设置为旧的 /********************************* ...
- HelloX操作系统网络功能简介及使用和开发指南
HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌 ...
- MySQL基础之第9章 触发器
触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT语句.UPDATE语句和DELETE语句.当数据库系统执行这些事件时,就会激活触发器执行相应的操作.MySQL从5.0.2版本开 ...
- C#+AE 用MapControl加载栅格格式文件
需要引入DataSourceRaster命名空间. 具体步骤如下: ①:利用工作控件工厂抽象类定义接口变量,利用工作空间工厂的子类RatserWorkspaceFactory对应的组件类RasterW ...
- 1045 整数礼物 c语言
描述 Na 给准备送给ZZ两个整数,a, b,他还计算了这两个整数的平均值c,碰巧c也是整数. 但是Na 突然把b给弄丢了,你要帮助Na通过a, c计算出来b的值. 输入 输入为一行,两个用空格隔开的 ...
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
MyBatis是什么? MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis ...
- window下版本控制工具Git 客户端安装
安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tor ...
- SQL SERVER 实现分组合并实现列数据拼接
需求场景: SQL SERVER 中组织的数据结构是一个层级关系,现在需要抓出每个组织节点以上的全部组织信息,数据示例如下: ADOrg_ID--------------ParentID------- ...
- HDU 5765 Bonds 巧妙状压暴力
题意:给一个20个点无向连通图,求每条边被多少个极小割集包括 分析:极小割集是边的集合,很显然可以知道,极小割集恰好吧原图分成两部分(这个如果不明白可以用反证法) 然后就是奉上官方题解:http:// ...