Hibernate试验03_06.批量延迟加载.doc

上传人:hs****ma 文档编号:559700668 上传时间:2022-09-23 格式:DOC 页数:4 大小:63.50KB
返回 下载 相关 举报
Hibernate试验03_06.批量延迟加载.doc_第1页
第1页 / 共4页
Hibernate试验03_06.批量延迟加载.doc_第2页
第2页 / 共4页
Hibernate试验03_06.批量延迟加载.doc_第3页
第3页 / 共4页
Hibernate试验03_06.批量延迟加载.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Hibernate试验03_06.批量延迟加载.doc》由会员分享,可在线阅读,更多相关《Hibernate试验03_06.批量延迟加载.doc(4页珍藏版)》请在金锄头文库上搜索。

1、实践1 批量延迟加载实验目的帮助学生理解掌握批量延迟加载的使用方式及其含义。技术要点l SQL基础知识;l Hibernate基础知识。实验步骤1. 打开HibernateProject03,下面我们演示批量加载。2. 假设班级和学生是一对多关联,现在采用批量延迟加载得到班级,班级对象会通过类关联取得所有的学生数据,学生和身份证采用延迟加载策略。此时,我们Student.hbm.xml、Team.hbm.xml、Certificate.hbm.xml,如下:Student.hbm.xml:Team.hbm.xml:Certificate.hbm.xml:3. 修改TeamDAO的getAllT

2、eam()方法,修改如下:TeamDAO.java: /*-取得所有Team-*/ public static List getAllTeam() List list = null; try session = HibernateUtil.currentSession(); / 开启连接 tx = session.beginTransaction(); / 开启事务 list = (List) session.createQuery(from Team t).list(); mit(); HibernateUtil.closeSession(session); Team team = (Tea

3、m)list.get(0); System.out.println(team.getStudents().size(); catch (HibernateException e) / 捕捉例外 e.printStackTrace(); tx.rollback(); return list; 4. 运行TeamManager,控制台执行结果如下:Eclipse Console:Hibernate: select team0_.id as id2_, team0_.teamName as teamName2_ from team team0_ERROR main (LazyInitializati

4、onException.java:19) - failed to lazily initialize a collection of role: com.qrsx.hibernate.model.Team.students, no session or session was closed5. 上述程序在Session关闭后试图打印延迟加载的学生集合,于是弹出了例外,这说明批量延迟加载是在“延迟”的基础上运行批量加载的。6. 重新修改TeamDAO的getAllTeam()方法,修改如下:TeamDAO.java: /*-取得所有Team-*/ public static List getAl

5、lTeam() List list = null; try session = HibernateUtil.currentSession(); / 开启连接 tx = session.beginTransaction(); / 开启事务 list = (List) session.createQuery(from Team t).list(); Team team1 = (Team)list.get(0); System.out.println(team1.getTeamName()+的学生数量:+team1.getStudents().size(); Team team2 = (Team)l

6、ist.get(1); System.out.println(team2.getTeamName()+的学生数量:+team2.getStudents().size(); Team team3 = (Team)list.get(2); System.out.println(team3.getTeamName()+的学生数量:+team3.getStudents().size(); Team team4 = (Team)list.get(3); System.out.println(team4.getTeamName()+的学生数量:+team4.getStudents().size(); Te

7、am team5 = (Team)list.get(4); System.out.println(team5.getTeamName()+的学生数量:+team5.getStudents().size(); mit(); HibernateUtil.closeSession(session); catch (HibernateException e) / 捕捉例外 e.printStackTrace(); tx.rollback(); return list; 7. 运行TeamManager,控制台执行结果如下:Eclipse Console:Hibernate: * from team team0_Hibernate: select * from student s where s.team_id in (?, ?) Hibernate: select * from student s where s.team_id in (?, ?)计算机技术一班的学生数量:2信息技术一班的学生数量:1应用数学一班的学生数量:1Hibernate: select * from student s where s.team_id=?信息技术二班的学生数量:1机械工程三班的学生数量:1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号