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是很有 ...
随机推荐
- MySQL 创建表
MySQL中create table语句的基本语法是: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,. ...
- struts2中如何使用主题theme
一.什么是主题? 主题就是一种风格化标签,能够让所有UI标签能够产生同样的视觉效果而归集到一起的一组模板,即风格相近的模板被打包为一个主题 二.struts2提供的主题有哪些呢?struts2中如何修 ...
- LeetCode(115) Distinct Subsequences
题目 Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequen ...
- [fortify] open redirect漏洞
简介: 些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击. 场景分析 假设有一个正规网站http://ne ...
- g++编译选项
-g,生成供调试用的可执行文件,可以在gdb中运行.由于文件中包含了调试信息因此运行效率很低,且文件也大不少. -c:生成名为source_file.o的目标文件. -o, 指定输出文件名,可以配合以 ...
- 时空地图TimeGIS 可编辑ArcGIS的Shape矢量文件的地理信息系统
时空地图 TimeGIS 6.0 是一个地理信息系统软件,它可以显示网络地图,编辑ArcGIS的SHP矢量文件格式,显示NETCDF等栅格文件,管理图层等. 在它的基础上,可以二次开发各种GIS应用, ...
- [LeetCode]413 Arithmetic Slices
A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...
- XML转JSON
Step 1 : 下载 java-json.jar http://www.java2s.com/Code/JarDownload/java/java-json.jar.zip Step 2: 增加 j ...
- android 中IntentService的作用及使用
IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service一样,同 ...
- mysql监控和优化(2)
mysql主从复制 3个线程完成复制:主库1个线程负责记录数据库变更日志从库1个线程负责拉取主库的变更日志从库1个线程负责执行主库的变更日志实现了获取事件和重放事件的解耦,允许异步进行.复制的瓶颈:主 ...