黄瑞生0127

编写代码实现Hibernate关联映射。

学生与身份证是一对一关联;

学生实体类:

package com.hrs.entity;public class Student {private Integer StudentId;
private Idcard idcard;
public Idcard getIdcard() {return idcard;
}
public void setIdcard(Idcard idcard) {this.idcard = idcard;
}
public Integer getStudentId() {return StudentId;
}
public void setStudentId(Integer studentId) {StudentId = studentId;
}
public String getStudentName() {return StudentName;
}
public void setStudentName(String studentName) {StudentName = studentName;
}
public Integer getStudentage() {return Studentage;
}
public void setStudentage(Integer studentage) {Studentage = studentage;
}
private String StudentName;
private Integer Studentage;
}

身份证实体类:

package com.hrs.entity;public class Idcard {private Integer cardid;private Integer cardnum;private String cardadd;private Student stdent;public Student getStdent() {return stdent;}public void setStdent(Student stdent) {this.stdent = stdent;}public Integer getCardid() {return cardid;}public void setCardid(Integer cardid) {this.cardid = cardid;}public Integer getCardnum() {return cardnum;}public void setCardnum(Integer cardnum) {this.cardnum = cardnum;}public String getCardadd() {return cardadd;}public void setCardadd(String cardadd) {this.cardadd = cardadd;}
}

学生类映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Student" table="testStudent">
<id name="StudentId" column="StudentId" type="java.lang.Integer">
<generator class="foregin">
<param name="property"> student</param>
</generator>
</id>
<property name="StudentName" column="cardnum" type="java.lang.String"></property>
<property name="Studentage" column="Studentage" type="java.lang.Integer"></property>
<!-- 在用户映射文件中,表示所有角色
使用set标签使用所有联系人,set标签里面有name属性,
属性值写在用户实体类里面表示角色的set集合名称
table属性:写第三张表名称-->
<!-- 一对多建表有外键,hibernate机制:双向维护外键,在一和多的那一方都配置外键
column属性值:当前映射文件在第三张表的外键名称 -->
<!-- class里面写角色实体类全路径 column里面写角色在第三张表外键名称 -->
<one-to-one name="com.hrs.entity.Idcard" constrained="true"></one-to-one>
</class>
</hibernate-mapping>

身份证类映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Idcard" table="testIdcard">
<id name="cardid" column="cardid" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="cardnum" column="cardnum" type="java.lang.Integer"></property>
<property name="cardadd" column="cardadd" type="java.lang.String"></property>
<!-- 在用户映射文件中,表示所有角色
使用set标签使用所有联系人,set标签里面有name属性,
属性值写在用户实体类里面表示角色的set集合名称
table属性:写第三张表名称-->
<!-- 一对多建表有外键,hibernate机制:双向维护外键,在一和多的那一方都配置外键
column属性值:当前映射文件在第三张表的外键名称 -->
<!-- class里面写角色实体类全路径 column里面写角色在第三张表外键名称 -->
</class>
</hibernate-mapping>
学生与角色是一对多关联;

学生实体类:


import java.util.HashSet;
import java.util.Set;public class Student {
private Integer StudentId;
private String StudentName;
private Integer Studentage;
public Set<Role> getRoleSet() {return RoleSet;
}
public void setRoleSet(Set<Role> roleSet) {RoleSet = roleSet;
}
private Set <Role> RoleSet=new HashSet<Role>();
public Integer getStudentId() {return StudentId;
}
public void setStudentId(Integer studentId) {StudentId = studentId;
}
public String getStudentName() {return StudentName;
}
public void setStudentName(String studentName) {StudentName = studentName;
}
public Integer getStudentage() {return Studentage;
}
public void setStudentage(Integer studentage) {Studentage = studentage;
}}在这里插入代码片

角色实体类:

package com.hrs.entity;public class Role {private Integer role_id;private String role_name;private String role_memo;//角色类型private Student student;public Integer getRole_id() {return role_id;}public void setRole_id(Integer role_id) {this.role_id = role_id;}public String getRole_name() {return role_name;}public void setRole_name(String role_name) {this.role_name = role_name;}public String getRole_memo() {return role_memo;}public void setRole_memo(String role_memo) {this.role_memo = role_memo;}public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}
}

学生实体类映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Student" table="t_user">
<id name="StudentId" column="StudentId" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="StudentName" column="StudentName" type="java.lang.String"></property>
<property name="StudentAge" column="StudentAge" type="java.lang.Integer"></property>
<!-- 在客户映射文件中,表示所有联系人
使用set标签使用所有联系人,set标签里面有name属性,
属性值写在客户实体类里面表示联系人的set集合名称 -->
<set name="RoleSet" >
<!-- 一对多建表有外键,hibernate机制:双向维护外键,在一和多的那一方都配置外键
column属性值:外键名称 -->
<key column="studentid"></key>
<!-- 客户所有的联系人,class里面写联系人实体类全路径 -->
<one-to-many class="com.hrs.entity.Role"></one-to-many>
</set>
</class>
</hibernate-mapping>

角色实体类映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Role" table="t_role">
<id name="role_id" column="role_id" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="role_name" column="role_name" type="java.lang.String"></property>
<property name="role_memo" column="role_memo" type="java.lang.String"></property>
<!-- 联系人所属的客户name属性:因为在联系人实体类使用customer对象表示,写customer名称class属性:customer全路径名column属性:外键名称--><many-to-one name="student" class="com.hrs.entity.Student" column="uid"> </many-to-one>
</class>
</hibernate-mapping>
学生与课程是多对多关联。

学生实体类:

package com.hrs.entity;import java.util.HashSet;
import java.util.Set;public class Student {private Integer StudentId;
private String StudentName;
private Integer StudentAge;
//在学生实体类表示课程用set集合
private Set <Course> CourseSet=new HashSet<Course>();public Set<Course> getCourseSet() {return CourseSet;
}
public void setCourseSet(Set<Course> courseSet) {CourseSet = courseSet;
}
public Integer getStudentId() {return StudentId;
}
public void setStudentId(Integer studentId) {StudentId = studentId;
}
public String getStudentName() {return StudentName;
}
public void setStudentName(String studentName) {StudentName = studentName;
}
public Integer getStudentAge() {return StudentAge;
}
public void setStudentAge(Integer studentAge) {StudentAge = studentAge;
}}

课程实体类:

package com.hrs.entity;import java.util.HashSet;
import java.util.Set;public class Course {private Integer CourseId;
private String CourseName;
private Integer Coursetime;
//在课程实体类表示学生用set集合
private Set <Student> StudentSet=new HashSet<Student>();public Set<Student> getStudentSet() {return StudentSet;
}
public void setStudentSet(Set<Student> studentSet) {StudentSet = studentSet;
}
public Integer getCourseId() {return CourseId;
}
public void setCourseId(Integer courseId) {CourseId = courseId;
}
public String getCourseName() {return CourseName;
}
public void setCourseName(String courseName) {CourseName = courseName;
}
public Integer getCoursetime() {return Coursetime;
}
public void setCoursetime(Integer coursetime) {Coursetime = coursetime;
}}

学生映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Student" table="testStudent">
<id name="StudentId" column="StudentId" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="StudentName" column="StudentName" type="java.lang.String"></property>
<property name="StudentAge" column="StudentAge" type="java.lang.Integer"></property>
<!-- 在用户映射文件中,表示所有角色
使用set标签使用所有联系人,set标签里面有name属性,
属性值写在用户实体类里面表示角色的set集合名称
table属性:写第三张表名称-->
<set name="CourseSet" table="student_course" >
<!-- 一对多建表有外键,hibernate机制:双向维护外键,在一和多的那一方都配置外键
column属性值:当前映射文件在第三张表的外键名称 -->
<key column="studentid"></key>
<!-- class里面写角色实体类全路径 column里面写角色在第三张表外键名称 -->
<many-to-many class="com.hrs.entity.Course" column="courseid"></many-to-many>
</set>
</class>
</hibernate-mapping>

课程映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称 -->
<class name="com.hrs.entity.Cuorse" table="testCousr">
<id name="CourseId" column="CourseId" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="CourseName" column="CourseName" type="java.lang.String"></property>
<property name="Coursetime" column="Coursetime" type="java.lang.Integer"></property>
<!-- 在用户映射文件中,表示所有角色
使用set标签使用所有联系人,set标签里面有name属性,
属性值写在用户实体类里面表示角色的set集合名称
table属性:写第三张表名称-->
<set name="StudentSet" table="student_course" >
<!-- 一对多建表有外键,hibernate机制:双向维护外键,在一和多的那一方都配置外键
column属性值:当前映射文件在第三张表的外键名称 -->
<key column="courseid"></key>
<!-- class里面写角色实体类全路径 column里面写角色在第三张表外键名称 -->
<many-to-many class="com.hrs.entity.Student" column="studentid"></many-to-many>
</set>
</class>
</hibernate-mapping>

Hibernate作业(一)相关推荐

  1. jdbc select语句_SELECT语句使用JDBC和Hibernate批量获取

    jdbc select语句 介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了. JDBC Resu ...

  2. hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作

    hibernate工厂模式 显式乐观锁定 在上一篇文章中 ,我介绍了Java持久性锁定的基本概念. 隐式锁定机制可防止丢失更新 ,它适用于我们可以主动修改的实体. 尽管隐式乐观锁定是一种广泛使用的技术 ...

  3. SELECT语句使用JDBC和Hibernate批量获取

    介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了. JDBC ResultSet提供了一个客户端代 ...

  4. Spring / Hibernate应用程序的性能调优

    对于大多数典型的Spring / Hibernate企业应用程序,应用程序性能几乎完全取决于其持久层的性能. 这篇文章将讨论如何确认我们是否存在"数据库绑定"应用程序,然后逐步讲解 ...

  5. 谨慎使用Hibernate中的本机SQL

    我真的很喜欢Hibernate,但我也不知道同时具备强大功能和欺骗性的工具. 我可以写一本书,讲述仅与Hibernate相关的生产和货物崇拜编程中的意外情况. 与用户相比,与工具相比,这更多的是问题, ...

  6. 在Hibernate,EhCache,Quartz,DBCP和Spring中启用JMX

    继续使用JMX的过程(请参阅: 人类JMX ),我们将学习如何在一些流行的框架中启用JMX支持(通常是统计和监视功能). 这些信息大部分都可以在项目的主页上找到,但是我决定在收集这些信息的同时,很少添 ...

  7. 带有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web项目Kickstarter代码库...

    我很高兴将第二个项目上传到GitHub,以帮助人们尽快开始Java Web App开发. 我正在与Apache License 2.0共享此代码. 这是相同的网址: https://github.co ...

  8. Primefaces Spring和Hibernate集成示例教程

    Primefaces Spring和Hibernate集成示例教程 欢迎使用Spring Primefaces和Hibernate Integration示例.框架之间的集成是一项复杂的任务,而且大多 ...

  9. 计算机课作业在线管理,iwork学生作业在线系统

    内容简介: iwork学生作业在线系统,毕业论文,共63页,15707字,附任务书.开题报告.源程序.外文翻译等. 摘 要 进入21世纪这个空前发展的时代之后,迅速普及的计算机技术.数字化教学以及远程 ...

最新文章

  1. Calendar如何只显示“一、二、三...日”,不显示“星期”
  2. maven存在的意义及其与eclipse的简单配置
  3. 2020-11-5(安卓)
  4. [Swift]LeetCode483. 最小好进制 | Smallest Good Base
  5. Spring RESTful Web服务中的异常处理
  6. 超越JAX-RS规范:Apache CXF搜索扩展
  7. 购书中心管理信息系统(含源文件)
  8. ICCV2021 Oral-TAUFacebook提出了通用的Attention模型可解释性
  9. 「leetcode」530. 二叉搜索树的最小绝对差:【有序数组】详解
  10. JAVA 身份证号码的验证
  11. iOS逆向 和班尼特福迪一起攻克难关(unity)
  12. Windows事件ID及解释大全
  13. Linux CFS调度算法核心解析
  14. 解析海康摄像机推送的PS流
  15. js禁止鼠标右键的菜单事件
  16. 笑不死算你命大了 逗你开心的笑话
  17. [Matlab]椭圆滤波器设计:低通、高通、带通和带阻(4)
  18. Kitty用HTML和css咋做,使用CSS3代码绘制可爱的Hello Kitty猫
  19. 【转载】浅谈人工智能:现状、任务、构架与统一 | 正本清源 -- 朱松纯教授
  20. (转)分辨率 PPI DPI概念定义详解

热门文章

  1. 笔记本电脑电池使用方式/BIOS信息
  2. 正在连接192.168.56.101...无法打开到主机的连接。 在端口 1521: 连接失败
  3. 炒股经常用到的几个工具网站
  4. win7桌面显示计算机的配置信息,win7电脑界面分区域如何设置?
  5. 腾讯游戏人脸识别验证是否会保存用户信息
  6. ATTCK实战系列——红队实战(一)
  7. 《魔道祖师》第三季预告片首发为汪叽庆生
  8. 外点罚函数法的MATLAB实现,一、非线性规划问题的几种求解方法1罚函数法(外点法).ppt...
  9. Bloom Filter与Cuckoo Filter
  10. Windows Embedded Standard 7 概述