zoukankan      html  css  js  c++  java
  • Hibernate批量抓取

    1、应用场景

      当我们想获取全部的商品类别,然后在获取所有类别下面的商品时,为了提高效率,就可以考虑使用批量抓取。

      批量抓取使用映射文件中的set标签的batch-size属性来设置,其值是任意一个整数,值越大效率越高。

      (1)不使用批量抓取实现效果:

        代码:

          

        @Test
            
            public void Test(){
                SessionFactory sessionFactory = null;
                Session session = null;
                Transaction tx = null;
                try {
                    sessionFactory = HibernateUtils.getFactory();
                    session = sessionFactory.openSession();
                    tx = session.beginTransaction();
                    //1、得到criteria对象
                     Criteria  criteria  = session.createCriteria(Sort.class);
                    //2、查询所有sort
                      List<Sort> list = criteria.list();
                    //3、遍历获取good
                      
                      for (Sort sort : list) {
                        System.out.println(sort);
                        Set<Good> goods = sort.getSetGoods();
                        for (Good good : goods) {
                            System.out.println(good);
                        }
                    }
                    
                    tx.commit();
                } catch (Exception e) {
                    tx.rollback();
                }finally{
                    session.close();
                    sessionFactory.close();
                }
            }

        执行效果:

          

             

    2、使用批量抓取效果

      1代码

        

        

    @Test
            
            public void Test(){
                SessionFactory sessionFactory = null;
                Session session = null;
                Transaction tx = null;
                try {
                    sessionFactory = HibernateUtils.getFactory();
                    session = sessionFactory.openSession();
                    tx = session.beginTransaction();
                    //1、得到criteria对象
                     Criteria  criteria  = session.createCriteria(Sort.class);
                    //2、查询所有sort
                      List<Sort> list = criteria.list();
                    //3、遍历获取good
                      
                      for (Sort sort : list) {
                        System.out.println(sort);
                        Set<Good> goods = sort.getSetGoods();
                        for (Good good : goods) {
                            System.out.println(good);
                        }
                    }
                    
                    tx.commit();
                } catch (Exception e) {
                    tx.rollback();
                }finally{
                    session.close();
                    sessionFactory.close();
                }
            }

        执行效果

                 

                 

    通过以上测试结果可以发现,使用批量抓取可以减少sql语句的发送,提高检索效率。

  • 相关阅读:
    CentOS7源码安装 mplayer-1.1
    CentOS6开关机日志查询
    Redis GUI客户端
    CST & UTC时间差
    FreeBSD10.0 PXE安装
    PostgreSQL9.6源码安装
    phpPgAdmin-5.1安装配置
    js截取文件名不带后缀
    在MongoDB中修改数据类型
    win10怎么修改DNS
  • 原文地址:https://www.cnblogs.com/jack1995/p/6953575.html
Copyright © 2011-2022 走看看