hibernate Criteria查询 2.3
Criteria对象提供了一种面向对象的方式查询数据库。
Criteria对象需要使用Session对象来获得一个Criteria对象表示对一个
持久化类的查询
查询所有
Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class);
List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit();
where
//1
Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class); //条件
cri.add(Restrictions.eq("username", "u1")); List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit();
//2 Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class); //条件 这是and效果
cri.add(Restrictions.eq("username", "u1"));
cri.add(Restrictions.eq("password","123")); List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit();
//3 Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class); //条件 这是or效果
cri.add(Restrictions.or(Restrictions.eq("username", "u1"),Restrictions.eq("username", "jack"))); List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit(); // like Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class);
/*MatchMode.ANYWHERE任何地方 MatchMode.START从开始 MatchMode.END表示u结尾的*/
cri.add(Restrictions.like("username", "u", MatchMode.ANYWHERE)); List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit();
分页
cri.setFirstResult(0);
cri.setMaxResults(5);
分组与统计
Creteria cri = session createCriteria(User.class);
cri.setProjection(Projections.count("id"));
Long count = (Long)cri.uniqueResult();
syso(count);
多个统计与分组
Creteria cri = session createCriteria(User.class);
ProjectionList pList = Projections.projectionList();
pList.add(Projections.max("id"));
pList.add(Projections.min("id")); cri.setProjection(pList); Object[] array = (Object[]) cri.uniqueResult();
System.out.println(array[0] + " : " +array[1]);
排序
Session session = HibernateUtil.getSession();
session.beginTransaction();
Criteria cri = session.createCriteria(User.class); cri.addOrder(Order.desc("id"));
cri.addOrder(Order.asc("username")); List<User> list = cri.list();
for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
session.getTransaction().commit();
------------------------------------------------
------------------------------------------------
当然也可以使用原生sql
Session session = HibernateUtil.getSession();
session.beginTransaction(); String sql = "select * from user";
SQLQuery query = session.createSQLQuery(sql);
List<Object[]> list = query.list(); for(Object[] array : list) {
System.out.println(array[0] + " : " + array[1]);
} String sql = "select * from user";
SQLQuery query = session.createSQLQuery(sql).addEntity(User.class);
List<User> list = query.list(); for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
hibernate Criteria查询 2.3的更多相关文章
- Hibernate Criteria 查询使用
转载 http://blog.csdn.net/woshisap/article/details/6747466 Hibernate 设计了 CriteriaSpecification 作为 Crit ...
- hibernate Criteria查询多对多(Set集合)条件筛选
PO public class UserPO implements java.io.Serializable { /** 用户唯一标识ID */ private String id; /** 状态(在 ...
- Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
- Hibernate框架之Criteria查询
首先给大家说说Hibernate检索方式 Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQ ...
- Hibernate criteria 混合sql语句多表关联时查询注意事项
直接进入正题 假设有一个实体类 /** * 产品分类 */ public class ProductType{ @Id private String no;//编号 private String na ...
- Hibernate查询之Criteria查询
转自:http://www.cnblogs.com/Laupaul/archive/2012/02/15/2353194.html Criteria是一种比hql更面向对象的查询方式.Criteria ...
- hibernate框架学习笔记11:Criteria查询详解
创建实体类对象: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Custome ...
- hibernate框架学习笔记7:HQL查询、Criteria查询简介
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
随机推荐
- iOS判断机型
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> typedef NS_OPTIONS(NSInteger,D ...
- 关于cvScalar的那些事
CvScalar 可存放在1-,2-,3-,4-TUPLE类型的捆绑数据的容器 该函数包含4个浮点成员,可以用来表示B(Blue),G(Green),R(Red),Alpha(表示图像的透明度) ty ...
- 求最小的k个数
和高速排序有点类似,利用高速排序的划分算法, 划分算法见http://blog.csdn.net/buyingfei8888/article/details/8997803 依据int partiti ...
- linux搭建邮件服务器
一.概述: 在配置邮件服务器之前,先解释几个概念. 通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail ...
- Google Maps 学习笔记(二)地图天气预报服务 2014.06.04
地图天气预报服务:一,获取天气预报信息:二,解析天气预报信息:三,在地图上加载天气预报信息: Yahoo!提供的天气预报服务采用流行的RSS输出结果,接口地址如下: http://weather.ya ...
- 全面理解js面向对象
前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...
- 寻找数列中第k大的数算法分析
问题描述:给定一系列数{a1,a2,...,an},这些数无序的,现在求第k大的数. 看到这个问题,首先想到的是先排序,然后直接输出第k大的数,于是得到啦基于排序的算法 算法一: #include&l ...
- struts的MVC详细实现
struts中核心类:ActionServlet,其中最主要的操作是RequestProcessor类中的process方法. struts实现mvc的详解图如下: 1.Tomcat一启动,根据web ...
- PHP的一些函数
//进制转换类 base_convert //字符转十六进制 binhex
- multi-threaded copy command - robocopy
we can copy files by the powerful robocopy tool, and it allow copy using muliti-threaded as well. As ...