• 【Hibernate QBC】


    HibernateQBC
    public class HibernateQBC {
    
        //演示离线查询
        @Test
        public void testSelect6() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
    //            Criteria criteria = session.createCriteria(Customer.class);
                DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);
    
                //2 最终执行时候才需要到session
                Criteria criteria = detachedCriteria.getExecutableCriteria(session);
    
                List<Customer> list = criteria.list();
    
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                }
    
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    
        //演示统计查询
        @Test
        public void testSelect5() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
                Criteria criteria = session.createCriteria(Customer.class);
    
                //2 设置操作
                criteria.setProjection(Projections.rowCount());
    
                //3 调用方法得到结果
                Object obj = criteria.uniqueResult();
    
                Long lobj = (Long) obj;
                int count = lobj.intValue();
    
                System.out.println(count);
    
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    
        //演示分页查询
        @Test
        public void testSelect4() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
                Criteria criteria = session.createCriteria(Customer.class);
    
                //2 设置分页数据
                //2.1 设置开始位置
                criteria.setFirstResult(0);
                //2.2 每页显示记录数
                criteria.setMaxResults(3);
    
                //3 调用方法得到结果
                List<Customer> list = criteria.list();
    
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                }
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    
        //演示排序查询
        @Test
        public void testSelect3() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
                Criteria criteria = session.createCriteria(Customer.class);
    
                //2 设置对哪个属性进行排序,设置排序规则
                criteria.addOrder(Order.desc("cid"));
    
                //3 调用方法得到结果
                List<Customer> list = criteria.list();
    
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                }
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    
        //演示条件查询
        @Test
        public void testSelect2() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
                Criteria criteria = session.createCriteria(Customer.class);
    
                //2 使用Criteria对象里面的方法设置条件值
                // 首先使用add方法,表示设置条件值
                // 在add方法里面使用类的方法实现条件设置
                // 类似于 cid=?
    //            criteria.add(Restrictions.eq("cid", 1));
    //            criteria.add(Restrictions.eq("custName", "百度"));
    
                criteria.add(Restrictions.like("custName", "%百%"));
    
                //3 调用方法得到结果
                List<Customer> list = criteria.list();
    
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                }
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    
        //演示查询所有
        @Test
        public void testSelect1() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //1 创建对象
                Criteria criteria = session.createCriteria(Customer.class);
                //2 调用方法得到结果
                List<Customer> list = criteria.list();
    
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                }
                tx.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    }
  • 相关阅读:
    Windows下临界区的使用CRITICAL_SECTION
    MFC中消息映射的实现
    Oracle中提供的事件触发机制
    CreateEvent()详解
    内核参数优化之2-1 tcp/ip 标志位报文解析
    内核参数优化之1 keepalive解析
    python之7-3对象的信息/方法获取
    python之7-2类的继承与多态
    python之7-1类
    python之6-3嵌套函数
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12293222.html
Copyright © 2020-2023  润新知