package com.kd.test;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.kd.entity.User;
public class CriteriaDemo {
@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();
// criteria 无语句查询,不需要写任何sql,纯方法调用即可
// criteria 查询列表
Criteria criteria = session.createCriteria(User.class);
List list = criteria.list();
transaction.commit();
session.close();
System.out.println(list);
}
@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();
// criteria 无语句查询,不需要写任何sql,纯方法调用即可
// criteria 分页查询
Criteria criteria = session.createCriteria(User.class);
//从哪开始pageindex
criteria.setFirstResult(0);
//查询几条pagesize
criteria.setMaxResults(2);
List list = criteria.list();
transaction.commit();
session.close();
System.out.println(list);
}
@Test
public void fun3() {
// 获取配置文件对象
Configuration config = new Configuration().configure();
// 构建SessionFactory
SessionFactory factory = config.buildSessionFactory();
// 生产session,可以理解为jdbc中的connection
Session session = factory.openSession();
// 开启事务
Transaction transaction = session.beginTransaction();
// criteria 无语句查询,不需要写任何sql,纯方法调用即可
// criteria 条件查询
Criteria criteria = session.createCriteria(User.class);
//1.设置条件参数求指定id的user信息
/*
* Restrictions中包含了许多条件参数
* > gt | between between
* >= ge | and and
* < lt | or or
* <= le | like like
* == eq | .....
* != ne |
*/
// criteria.add(Restrictions.eq("id", 1));
// User user = (User) criteria.uniqueResult();
//2.设置聚合函数Projections.rowCount()求数据个数
/*
* avg(String propertyName):计算属性字段的平均值
* count(String propertyName):统计一个属性在结果中出现的次数
* countDistinct(String propertyName):统计属性包含的不重复值的数量
* max(String propertyName):计算属性值的最大值
* min(String propertyName):计算属性值的最小值
* sum(String propertyName):计算属性值的总和
*/
criteria.setProjection(Projections.rowCount());
Object num = criteria.uniqueResult();
transaction.commit();
session.close();
// System.out.println(user);
System.out.println(num);
}
}
Hibernate使用criteria的实例
猜你喜欢
转载自blog.csdn.net/Yang_xinqiao/article/details/84228258
今日推荐
周排行