hibernate HQL和Criteria

package com.test; import java.util.Date;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session; import com.entity.User;
import com.hibernate.HibernateUtil; public class QueryTest
{
public static void main(String[] args)
{
User user = new User();
user.setName("name");
user.setBirthday(new Date());
HibernateUtil.addUser(user);
query(user.getName());
}
static void query(String name)
{
Session s = null;
try
{
s = HibernateUtil.getSession();
String hql = "from User as user where user.name = ?";
Query query = s.createQuery(hql);
query.setString(0, name);
List<User> list = query.list();
for(User user:list)
{
System.out.println(user.getId() + " " + user.getName());
}
}
finally
{
if(s != null)
{
s.close();
}
}
}
}
这段代码中,HibernateUtil是自己写的工具类,封装了一些方法。
上面代码中,先add一个新的user。然后使用query运行hql语句。
除了query.list();
还有常用的query.uniqueResult();
另外就是分页要用的方法:
query.setFirstResult(1);
query.setMaxResults(10);
package com.test; import java.util.Date;
import java.util.List; import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions; import com.entity.User;
import com.hibernate.HibernateUtil; public class Cri
{
public static void main(String[] args)
{
User user = new User();
user.setName("xiaoy");
user.setBirthday(new Date());
HibernateUtil.addUser(user);
cri(user.getName());
}
static void cri(String name)
{
Session s = null;
try
{
s = HibernateUtil.getSession();
Criteria cri = s.createCriteria(User.class);
cri.add(Restrictions.eq("name", name));
List<User> list = cri.list();
for(User u:list)
{
System.out.print(u.getName() + " ");
}
}
finally
{
if(s != null)
{
s.close();
}
}
}
}
Criteria使用方法也很简单,主要看调用Restrictions来设置查询条件。
hibernate HQL和Criteria的更多相关文章
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Hibernate-ORM:15.Hibernate中的Criteria查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲师Hibernate中的Criteria查询! 一,Criteria简介: 刚接触Hibernate ...
- Hibernate框架之Criteria 详解
自从学数据库以来,从SQL查询-HQL查询-到Criteria 查询.有人问我:掌握一种查询语句不就可以吗,为什么还要学Criteria 查询?我回答道:用到特定于数据库的SQL 语句,程序本身会依赖 ...
- weblogic10异常:org.hibernate.hql.ast.HqlToken
转自:http://www.programgo.com/article/68682994452/ 在做查询的时候,报出 org.hibernate.QueryException: ClassNotF ...
- SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]
非常诡异的报错,信息如下:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [select count(* ...
- 解决Eclipse编译器报错ClassNotFoundException:Org.hibernate.hql.ast.HqlToken
最近开发遇到Eclipse编译器老是报出ClassNotFoundException:Org.hibernate.hql.ast.HqlToken [from User Where id=1] 的错误 ...
- java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode \-[M ...
- Hibernate HQL详细说明
1. Hibernate HQL详细说明 1.1. hql一个简短的引论 Hibernate它配备了一种非常强大的查询语言.这种语言看起来非常像SQL.但是不要 要对相位的语法结构似,HQL是很有 ...
随机推荐
- datagridview 定位到最后一行,定位不准的原因
C# 写的 winform 程序,定位到最后一行 dgvGoods.FirstDisplayedScrollingRowIndex = dgvGoods.Rows.Count - 1; 测试中发现,一 ...
- GCC4.8.2升级安装
一.查看本机GCC版本: 使用gcc -v 查看本机版本信息,我的gcc版本为: gcc 版本 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) 二.升级或安装编译器: 1 ...
- 论ubuntu的作死技巧
此处记录自己弄崩系统的几大杀器,长期更新. 1. sudo apt-get autoremove
- noip2010-t3
[题目描述] S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来 ...
- window对象常用方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 开园第一篇 - 论移动开发环境 IOS与Android的差异
首先,在真正写技术之前做个自我简介.本人08年开始学c语言 一年后,转vc++.开始接触MFC MFC做了两年.转眼11年了我考上了一个不知名的大专.搞C++发现没有市场了因为当时酷狗腾讯的软件已经日 ...
- textField设置输入文字距左边的距离
1.设置tetxField的内边距 [self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingTop&q ...
- Fresco简单的使用—SimpleDraweeView
本文出处:http://blog.csdn.net/u011164565/article/details/51330778 Fresco是一个第三方库,github官网地址:https://githu ...
- [UCSD白板题] Maximum Pairwise Product
Problem Description Task.Given a sequence of non-negative integers \(a_0, ..., a_{n-1}\),find the ma ...
- JavaSE自学笔记
ch03 [Thu Aug 18 2016 11:22:26 GMT+0800] 对象变量与对象之间是指代关系,对象变量并不能完全说明有无对象可用.这种指代关系是通过赋值运算建立起来的.对象变量保存的 ...