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 ...
随机推荐
- 函数buf_read_page
/********************************************************************//** High-level function which ...
- UVa 11400 Lighting System Design【DP】
题意:给出n种灯泡,分别给出它们的电压v,电源费用k,每个灯泡的费用c,和所需灯泡的数量l,问最优方案的费用 看的紫书= = 首先是dp[i]为灯泡1到i的最小费用, dp[i]=min(dp[i], ...
- 【转】 Java 多线程之一
转自 Java 多线程 并发编程 一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进 ...
- javascript倒计时代码
其实就是用两个时间戳相减,余数转换为日期,就是所剩的年月日时分秒,不过年份-1970 $scope.timerID = null; $scope.timerRunning = false;$scope ...
- java中的final、finally和finalize
最近在读Thinking In Java,秉着有些地方还能知道自己不会的精神,都去好好查阅了一些资料,在内存分配这一章,看到finalize()这个方法,刚开始很不理解,查阅了一些资料,顺带看了一下f ...
- 【转】IOS NSTimer 定时器用法总结
原文网址:http://my.oschina.net/u/2340880/blog/398598 NSTimer在IOS开发中会经常用到,尤其是小型游戏,然而对于初学者时常会注意不到其中的内存释放问题 ...
- C# 使用C/S模式操作小票机打印
此方式适用于市场上大多数的小票机 佳博.POS58 等,不适用于有些标签打印机 比如斑马打印机等 直接贴代码: private FileStream fs = null; [DllImport(&qu ...
- centos软件环境
1,保持能链接外网和yum的可用性. 注意:yum配置项中最好:keepcache=1 2,yum install gcc, gcc-c++, make, cmake, 3, ntfs-3g wget ...
- MYSQL内存
全局内存(BASE MEMORY) 线程内存(MEMORY PER CONNECTION) max_conecctions:整个 MySQL 允许的最大连接数; max_user_connection ...
- Oracle :一次数据库连接,返回多个结果集
1. 一次数据库连接,返回多个结果集 1.1 建立包规范 create or replace package QX_GDJTJ is -- Author : xxx -- Created : 2012 ...