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 ...
随机推荐
- [Ext JS 4] 布局之实战一 - 中间区块不会自动伸展 (tab)
前言 [Ext JS 4] 布局之实战一 - 中间区块不会自动伸展 (tab) 在上一篇中,中间的tab 区块无法自动伸展的原因一句话说就是: 使用contentEL的方式,相关HTML元素不会参与组 ...
- iOS设计模式——MVC(Model-View-Controller)
Modol View Controller(MVC)是一种最早的也是最成功的可重用的设计模式,70年代的时候首次在smaltalk编写的程序中成功使用.基于MVC设计 模式,Cocoa整体架构可以划分 ...
- 纯代码 自己主动屏幕适配iPhone button
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2h1bmdlc2hpaHVhdGlhbg==/font/5a6L5L2T/fontsize/400/fil ...
- iOS app 集成友盟推送问题
之前做app推送主要是集成友盟SDK,在程序获取deviceToken时,老是提示如下错误: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用 ...
- (转)Log4J日志配置详解
http://www.cnblogs.com/ITtangtang/p/3926665.html 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源 ...
- 浅谈Servlet(一)
一.Servlet技术引言 1.什么是servlet a.Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式 ...
- java读取配置文件的几种方法
java读取配置文件的几种方法 原文地址:http://hbcui1984.iteye.com/blog/56496 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配 ...
- Problem D Ananagrams(map的使用)
题目链接:Problem D 题意:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另一个单词.在判断是否满足条件时,字母不区分大小写. 但是输出时应保留原始大小写, ...
- Exponentiation
Description Problems involving the computation of exact values of very large magnitude and precision ...
- Problem G: Keywords Search
Problem G: Keywords SearchTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 10 Solved: 6[Submit][Status] ...