zoukankan      html  css  js  c++  java
  • 【Hibernate 检索策略】

    HibernateDemo2

    public class HibernateDemo2 {
    
        //演示批量抓取
        @Test
        public void testSelect3() {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session = sessionFactory.openSession();
                tx = session.beginTransaction();
    
                //查询所有客户
                Criteria criteria = session.createCriteria(Customer.class);
                List<Customer> list = criteria.list();
                //得到每个客户里面所有的联系人
                for (Customer customer : list) {
                    System.out.println(customer.getCid() + "::" + customer.getCustName());
                    //每个客户里面所有的联系人
                    Set<LinkMan> setLinkMan = customer.getSetLinkMan();
                    for (LinkMan linkMan : setLinkMan) {
                        System.out.println(linkMan.getLkm_id() + "::" + linkMan.getLkm_name());
                    }
                }
    
                tx.commit();
            } catch (Exception e) {
                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();
    
                //根据cid=1客户
                //执行get方法之后,是否发送sql语句
                //调用get方法马上发送sql语句查询数据库
    //            Customer customer = session.get(Customer.class, 1);
    //
    //            System.out.println(customer.getCid());
                /*
                 * 1 调用load方法之后,不会马上发送sql语句
                 * (1)返回对象里面只有 id值
                 *
                 * 2 得到对象里面不是id的其他值时候才会发送语句
                 * */
                Customer customer = session.load(Customer.class, 2);
    
                System.out.println(customer.getCid());
    
                System.out.println(customer.getCustName());
    
                tx.commit();
            } catch (Exception e) {
                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();
    
                //根据cid=1客户,再查询这个客户里面所有联系人
                Customer customer = session.get(Customer.class, 1);
                //再查询这个客户里面所有联系人
                //直接得到客户里面联系人的set集合
    
                //得到set集合,没有发送语句
                Set<LinkMan> linkman = customer.getSetLinkMan();
    
                // 发送语句
                System.out.println(linkman.size());
    
                tx.commit();
            } catch (Exception e) {
                tx.rollback();
            } finally {
                session.close();
                sessionFactory.close();
            }
        }
    }
  • 相关阅读:
    ios添加第三方字体
    IOS 适应各种iphone屏幕尺寸
    sqlite第三方类库FMDB的使用
    IOS--沙盒机制
    用plist建立UITabController
    Xcode7 使用NSURLSession发送HTTP请求报错[转]
    网络开发--NSURLConnection类的简单介绍
    TF-IDF
    《汇编语言》——王爽 第12章 内中断
    操作系统 L4操作系统接口+L5系统调用的实现(网易公开课)
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12293296.html
Copyright © 2011-2022 走看看