Hibernate HQL 查询API
来源:互联网 发布:供应链管理软件 java 编辑:程序博客网 时间:2024/06/05 17:26
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();
}
}
}
- Hibernate HQL 查询API
- 【Hibernate】Hibernate HQL 查询
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- Hibernate 查询语言(HQL)
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- Hibernate查询语言:HQL
- 查询 Hibernate HQL
- hibernate查询语句---HQL
- python面试题目
- 下一阶段工作内容与进步点
- 流年,经不起怀念
- 异步通信
- AS3_MVC
- Hibernate HQL 查询API
- JSP架构、JSP开发工具优缺点比较
- 单点登录
- 简单返回顶部代码及注释说明
- 在C#中使用System.Timers.Timer
- iOS越狱之程序获得root权限
- JSP语法
- linux 用户态和内核通信之Netlink
- 黑马程序员java笔记之九-----交通灯信号管理系统