使用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);
}
}