首页 > 代码库 > Hibernate批量抓取
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语句的发送,提高检索效率。
Hibernate批量抓取
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。