首页 JavaEE教案 (9)

JavaEE教案 (9)

举报
开通vip

JavaEE教案 (9)重庆正大软件职业技术学院教案(项目类) 授课对象 系 别 软件系 本次课学时 4学时 年级班次 大二 章节题目 第3章 hibernate多对多(注解) 目的要求(含技能要求) 掌握hibernate注解方式多对多查询的基本配置 本节重点 掌握hibernate注解方式多对多查询的基本配置 本节难点 掌握hibernate注解方式多对多查询的基本配置 教学方法 ...

JavaEE教案 (9)
重庆正大软件职业技术学院教案(项目类) 授课对象 系 别 软件系 本次课学时 4学时 年级班次 大二 章节题目 第3章 hibernate多对多(注解) 目的要求(含技能要求) 掌握hibernate注解方式多对多查询的基本配置 本节重点 掌握hibernate注解方式多对多查询的基本配置 本节难点 掌握hibernate注解方式多对多查询的基本配置 教学 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 项目教学法 教学用具 机房、屏幕广播 问题引入 通过用户注册案例中的数据入库,从而引出本次课程。 难点与重点讲解方法 引导、分析、讲解、实作演示 本次课小结 课程小结   教后礼记   讨论、思考题、作业(含实训作业) 完成本次课的课堂任务 填写 实验报告 化学实验报告单总流体力学实验报告观察种子结构实验报告观察种子结构实验报告单观察种子的结构实验报告单               任务介绍(5分钟) 改造本章前面查询注册信息(实现多表多对多查询)任务,要求使用hibernate框架注解方式实现,其表结构爱好表(如表3.4-3a所示)、用户表(如表3.4-3b所示)及查询页面(如图3.4-3c所示)均与本章前面查询注册信息(实现多表多对多查询)任务一样。 任务解析(50-60分钟) 1. 修改爱好实体类Hobby(加入注解) 2. 修改用户实体类User(加入注解) 3. 修改hibernate.cfg.xml配置文件,加入用户、爱好实体类配置 4. dao层:修改类QueryDao(修改创建Configuration对象代码) 5. 调试运行 详细步骤 1. 修改爱好实体类Hobby(加入注解) 在爱好实体类Hobby中增加注解,关键代码如下: @Entity @Table(name="province") public class Hobby { @Id @GeneratedValue(generator = "pkGenerator")      @GenericGenerator(name = "pkGenerator", strategy = "native") private int id; @Column(name="name") private String name; @Column(name="note") private String note; @ManyToMany(targetEntity = User.class, fetch = FetchType.EAGER) @JoinTable(name = "user_hobby", joinColumns = { @JoinColumn(name = "hobby_id") }, inverseJoinColumns = { @JoinColumn(name = "user_id") }) Set users=new HashSet(0); // 以下省略get/set方法 } 2. 修改用户实体类User(加入注解) 在用户实体类User中增加注解,关键代码如下: @Entity @Table(name = "user") public class User { @Id @GeneratedValue(generator = "pkGenerator") @GenericGenerator(name = "pkGenerator", strategy = "native") int id; @Column(name = "courseName") String name; @Column(name = "courseName") String userName; @Column(name = "courseName") String password; @Column(name = "courseName") String sex; @Column(name = "courseName") int age; @Column(name = "courseName") Date birth; @Column(name = "courseName") String mobile; @Column(name = "courseName") String email; @ManyToOne(targetEntity=Clazz.class,fetch=FetchType.EAGER) @JoinColumn(name="province") Province province; //以下省略每个成员变量的get/set方法 } 上述代码中涉及到用户与省份的多对一关系,因此,还要在省份实体类中加入注解。其省份实体类Province的关键代码如下: @Entity @Table(name="province") public class Province { @Id @GeneratedValue(generator = "pkGenerator")      @GenericGenerator(name = "pkGenerator", strategy = "native") int id;//省份流水号 @Column(name="name") String name;//省份名称 @Column(name="note") String note;//描述 //以下省略每个成员变量的get/set方法 } 3. 修改hibernate.cfg.xml配置文件,加入用户、爱好实体类配置 在hibernate.cfg.xml配置文件的节点中添加代码: 在hibernate.cfg.xml配置文件的节点中去掉或注释以下代码: 4. dao层:修改类QueryDao(修改创建Configuration对象代码) 修改com.zdsoft.dao包下数据处理类QueryDao中创建Configuration对象代码,关键代码如下: public class QueryDao { // 使用hibernate框架创建sessionFactory对象 SessionFactory sessionFactory = new AnnotationConfiguration ().configure().buildSessionFactory(); public Hobby query(String name) { Hobby ret = null; // 编写查询的hibernate框架特有的 sql语句 if(name==null||"".equals(name)){ return null;//若不输入查询条件爱好,该查询结果无意义,直接返回null } String hql = "from Hobby where name='"+name+"'"; Session session = sessionFactory.openSession(); try { Query query = session.createQuery(hql); ret = (Hobby) query.list().get(0);//返回的结果应该是一条 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 } catch (HibernateException e) { e.printStackTrace(); ret = null; } finally { if (session != null) { session.close(); } } return ret; } } 5. 调试运行 首先,本章3.4节任务中service层、action层、sturts配置文件、页面相关代码均可重用,无需修改,然后按照本章3.4节任务准备好查询的数据(如图3.4-3e、图3.4-3f、3.4-3g所示),然后将工程发布到服务器,启动服务器,运行页面query.jsp,最后输入查询条件——打乒乓,查询结果与3.4节一样(如图3.4-3c所示)。 根据任务提出问题(45-55分钟) ● 如何使用hibernate注解方式完成多表多对多查询? 问题解析(45-55分钟) 1. 使用hibernate注解方式完成多表多对多查询 这里以学生信息管理系统查询学生选课信息为例来说明。 【例子3.8-1】改造例子3.4-1,使用hibernate注解方式实现根据课程名称查询选修该课程的所有学生信息的查询功能。查询的学生表(如表3.4-1a)、课程表(如表3.4-1b)、学生选课表(如表3.4-1c)均与例子3.4-1一样。 步骤1:修改com.zdsoft.domain包下学生实体类Student,加入注解,关键代码如下: @Entity @Table(name="student") public class Student { @Id @GeneratedValue(generator = "pkGenerator")      @GenericGenerator(name = "pkGenerator", strategy = "native") private int id; @Column(name="studentName") private String studentName; @Column(name="studentNo") private String studentNo; @Column(name="sex") private String sex;
本文档为【JavaEE教案 (9)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633423
暂无简介~
格式:doc
大小:42KB
软件:Word
页数:0
分类:
上传时间:2019-06-28
浏览量:9