Hibernate使用hql语句操作数据库

使用hql语句,对数据库进行批量查询、条件查询、分页查询

package com.kd.test;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.junit.Test;

import com.kd.entity.User;

public class Demo01 {
	//hql的批量查询
	@Test
	public void fun(){
		//获取配置文件对象
		Configuration config=new Configuration().configure();
		//构建SessionFactory
		SessionFactory factory = config.buildSessionFactory();
		//生产session,可以理解为jdbc中的connection
		Session session = factory.openSession();
		//开启事务
		Transaction transaction = session.beginTransaction();
		//创建hql语句
		String hql ="from User";
		//创建查询
		Query query = session.createQuery(hql);
		List list = query.list();
		//提交事务
		transaction.commit();
		//关闭session
		session.close();
		System.out.println(list);
	}
	//hql条件查询
	@Test
	public void fun1(){
		//获取配置文件对象
		Configuration config=new Configuration().configure();
		//构建SessionFactory
		SessionFactory factory = config.buildSessionFactory();
		//生产session,可以理解为jdbc中的connection
		Session session = factory.openSession();
		//开启事务
		Transaction transaction = session.beginTransaction();
		//创建hql语句,命名占位符
		String hql ="from User where id=:id";
		//占位符
//		String hql="from User where id=?0";
		//创建查询
		Query query = session.createQuery(hql);
		query.setParameter("id", 1);
//		占位符使用query.setParameter(0, 1)
//		query.setParameter(0, 1);
		User user = (User) query.uniqueResult();
		//提交事务
		transaction.commit();
		//关闭session
		session.close();
		System.out.println(user);
	}
	
	//hql的分页查询
	@Test
	public void fun2(){
		//获取配置文件对象
		Configuration config=new Configuration().configure();
		//构建SessionFactory
		SessionFactory factory = config.buildSessionFactory();
		//生产session,可以理解为jdbc中的connection
		Session session = factory.openSession();
		//开启事务
		Transaction transaction = session.beginTransaction();
		//创建hql语句
		String hql ="from User";
		Query query = session.createQuery(hql);
		//从哪开始==pageindex
		query.setFirstResult(1);
		//查询几条==pagesize
		query.setMaxResults(3);
		List list = query.list();
		//提交事务
		transaction.commit();
		//关闭session
		session.close();
		System.out.println(list);
	}
}

猜你喜欢

转载自blog.csdn.net/Yang_xinqiao/article/details/84189071