Hibernate HQL 查询API
2012-09-14 16:54
260 查看
package cn.com.leadfar.hibernate;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HQLFind extends TestCase {
public void testQuery01(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("from Person");
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery02(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
//基于索引的参数 0-base
Query query=(Query)session.createQuery(" select p from Person p where p.name like? and p.age<? and age>?");
query.setParameter(0, "%小%");
query.setParameter(1,88888 );
query.setParameter(2, 25656);
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery03(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery
("select p.id,p.name,p.age from Person p where p.name like :pn and p.age > :lage and p.age < :rage");
query.setParameter("pn", "%三%");
query.setParameter("lage", 1120);
query.setParameter("rage", 111160);
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object[] p = (Object[]) iterator.next();
System.out.println(p[0]+","+p[1]+","+p[2]);
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery04() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
//基于命名的参数
Query query = session.createQuery("select p from Person p where p.name like :pn and p.age > :lage and p.age < :rage");
query.setParameter("pn", "%1%");
query.setParameter("lage", 20);
query.setParameter("rage", 60);
List list = query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p = (Person) iterator.next();
System.out.println(p.getId()+","+p.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery05() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
Query query = session.createQuery("select p.id,p.name from Person p where p.id in (:ids)");
List ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
//ids不能为null或empty
query.setParameterList("ids", ids);
List list = query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object[] p = (Object[]) iterator.next();
System.out.println(p[0]+","+p[1]);//查询数据库中id为前三个的前两个字段值
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery06() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
Query query = session.createQuery("select p from Person p where p.id = ?");
query.setParameter(0, 10);//查询id为10的属性
/**
* 0条结果 - null
* 1条结果 - select的类型
* 多于1条结果 - 报异常
*/
Person p = (Person)query.uniqueResult();
if(p != null){
System.out.println(p.getId()+","+p.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery07(){
/*
* 查询数据库中共有多少条记录
*
*/
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("select count(*)from Person");//查询数据库中共有多少条记录
Long l=(Long)query.uniqueResult();
System.out.println(l);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery08(){
/*
* 数据库实现分页技术
*
*/
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("from Person");
query.setFirstResult(10);
query.setMaxResults(20);
List list=(List)query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HQLFind extends TestCase {
public void testQuery01(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("from Person");
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery02(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
//基于索引的参数 0-base
Query query=(Query)session.createQuery(" select p from Person p where p.name like? and p.age<? and age>?");
query.setParameter(0, "%小%");
query.setParameter(1,88888 );
query.setParameter(2, 25656);
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery03(){
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery
("select p.id,p.name,p.age from Person p where p.name like :pn and p.age > :lage and p.age < :rage");
query.setParameter("pn", "%三%");
query.setParameter("lage", 1120);
query.setParameter("rage", 111160);
List list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object[] p = (Object[]) iterator.next();
System.out.println(p[0]+","+p[1]+","+p[2]);
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery04() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
//基于命名的参数
Query query = session.createQuery("select p from Person p where p.name like :pn and p.age > :lage and p.age < :rage");
query.setParameter("pn", "%1%");
query.setParameter("lage", 20);
query.setParameter("rage", 60);
List list = query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p = (Person) iterator.next();
System.out.println(p.getId()+","+p.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery05() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
Query query = session.createQuery("select p.id,p.name from Person p where p.id in (:ids)");
List ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
//ids不能为null或empty
query.setParameterList("ids", ids);
List list = query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object[] p = (Object[]) iterator.next();
System.out.println(p[0]+","+p[1]);//查询数据库中id为前三个的前两个字段值
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery06() throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
try{
session.beginTransaction();
Query query = session.createQuery("select p from Person p where p.id = ?");
query.setParameter(0, 10);//查询id为10的属性
/**
* 0条结果 - null
* 1条结果 - select的类型
* 多于1条结果 - 报异常
*/
Person p = (Person)query.uniqueResult();
if(p != null){
System.out.println(p.getId()+","+p.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery07(){
/*
* 查询数据库中共有多少条记录
*
*/
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("select count(*)from Person");//查询数据库中共有多少条记录
Long l=(Long)query.uniqueResult();
System.out.println(l);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
public void testQuery08(){
/*
* 数据库实现分页技术
*
*/
//默认读取根路径下面的hibernate.cfg.xml文件
Configuration cfg=new Configuration().configure();
//创建sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//创建hibernate Session
Session session=factory.openSession();
//开启事物
try{
session.beginTransaction();
Query query=(Query)session.createQuery("from Person");
query.setFirstResult(10);
query.setMaxResults(20);
List list=(List)query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Person p= (Person) iterator.next();
System.out.println(p.getId()+" "+p.getName()+" "+p.getQq());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
}
}
相关文章推荐
- Hibernate查询-hql
- Hibernate中HQL语句查询指定字段值报错:ClassCastException: [java.lang.Object; cannot be cast to bean.PersonStatic
- Hibernate 的查询语言 HQL 之(二)
- 为什么Hibernate 3中的HQL无法查询汉字
- hibernate使用查询语句hql
- hibernate关于hql的左外连接查询
- hibernate之HQL实体查询
- hibernate之HQL之引用查询
- Hibernate的HQL查询
- Hibernate hql 查询指定字段并获取结果集
- Hibernate查询方式---HQL方式
- hibernate HQL查询的参数绑定
- hibernate 中HQL查询
- Hibernate学习笔记总结(三)——Hibernate 3.x——HQL查询语言(重点)
- HQL查询及Hibernate对c3p0连接池的支持
- Hibernate查询语言——HQL
- 关于HQL(Hibernate Query Language)的查询方法
- hibernate中hql查询
- hibernate框架hql的条件查询(九)
- Spring中常用的hql查询方法(getHibernateTemplate())