查询—criteria

因为criteria是面向对象的方式进行的查询,所以其中的查询涉及到的都是一些对象,而不是sql语句。

public class App {

 

    private static SessionFactory sessionFactory = new Configuration()//

            .configure()//

            .addClass(Department.class)// 添加Hibernate实体类(加载对应的映射文件)

            .addClass(Employee.class)// 添加Hibernate实体类(加载对应的映射文件)

            .buildSessionFactory();

 

    // 准备数据

    @Test

    public void testSave() throws Exception {

        Session session = sessionFactory.openSession();

        session.beginTransaction();

        // --------------------------------------------

 

        // 保存一些部门数据

        for (int i = 1; i <= 10; i++) {

            Department department = new Department();

            department.setName("开发部_" + i);

            session.save(department);

        }

 

        // 保存一些员工数据

        for (int i = 1; i <= 20; i++) {

            Employee employee = new Employee();

            employee.setName("XX_" + i);

            session.save(employee);

        }

 

        // --------------------------------------------

        session.getTransaction().commit();

        session.close();

    }

 

    // 使用QBC方式查询:Query By Criteria

    @Test

    public void testQBC() throws Exception {

        Session session = sessionFactory.openSession();

        session.beginTransaction();

        // --------------------------------------------

 

        // 创建Criteria对象

        Criteria criteria = session.createCriteria(Employee.class);

        // 增加过滤条件

        criteria.add(Restrictions.ge("id", 1));

        criteria.add(Restrictions.le("id", 5));

        // 增加排序条件

        criteria.addOrder(Order.desc("name"));

        criteria.addOrder(Order.desc("id"));

        // 执行查询

              // criteria.setFirstResult(0);

        // criteria.setMaxResults(100);

        // criteria.uniqueResult();

        // criteria.list()

        List list = criteria.list();

        // 显示结果

        for (Object obj : list) {

            if (obj.getClass().isArray()) {

                System.out.println(Arrays.toString((Object[]) obj));

            } else {

                System.out.println(obj);

            }

        }

 

        // --------------------------------------------

        session.getTransaction().commit();

        session.close();

    }

 

}

 

转载于:https://my.oschina.net/u/2441574/blog/513537

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值