Hibernate作业(一)
黄瑞生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作业(一)相关推荐
- jdbc select语句_SELECT语句使用JDBC和Hibernate批量获取
jdbc select语句 介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了. JDBC Resu ...
- hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作
hibernate工厂模式 显式乐观锁定 在上一篇文章中 ,我介绍了Java持久性锁定的基本概念. 隐式锁定机制可防止丢失更新 ,它适用于我们可以主动修改的实体. 尽管隐式乐观锁定是一种广泛使用的技术 ...
- SELECT语句使用JDBC和Hibernate批量获取
介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了. JDBC ResultSet提供了一个客户端代 ...
- Spring / Hibernate应用程序的性能调优
对于大多数典型的Spring / Hibernate企业应用程序,应用程序性能几乎完全取决于其持久层的性能. 这篇文章将讨论如何确认我们是否存在"数据库绑定"应用程序,然后逐步讲解 ...
- 谨慎使用Hibernate中的本机SQL
我真的很喜欢Hibernate,但我也不知道同时具备强大功能和欺骗性的工具. 我可以写一本书,讲述仅与Hibernate相关的生产和货物崇拜编程中的意外情况. 与用户相比,与工具相比,这更多的是问题, ...
- 在Hibernate,EhCache,Quartz,DBCP和Spring中启用JMX
继续使用JMX的过程(请参阅: 人类JMX ),我们将学习如何在一些流行的框架中启用JMX支持(通常是统计和监视功能). 这些信息大部分都可以在项目的主页上找到,但是我决定在收集这些信息的同时,很少添 ...
- 带有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web项目Kickstarter代码库...
我很高兴将第二个项目上传到GitHub,以帮助人们尽快开始Java Web App开发. 我正在与Apache License 2.0共享此代码. 这是相同的网址: https://github.co ...
- Primefaces Spring和Hibernate集成示例教程
Primefaces Spring和Hibernate集成示例教程 欢迎使用Spring Primefaces和Hibernate Integration示例.框架之间的集成是一项复杂的任务,而且大多 ...
- 计算机课作业在线管理,iwork学生作业在线系统
内容简介: iwork学生作业在线系统,毕业论文,共63页,15707字,附任务书.开题报告.源程序.外文翻译等. 摘 要 进入21世纪这个空前发展的时代之后,迅速普及的计算机技术.数字化教学以及远程 ...
最新文章
- Calendar如何只显示“一、二、三...日”,不显示“星期”
- maven存在的意义及其与eclipse的简单配置
- 2020-11-5(安卓)
- [Swift]LeetCode483. 最小好进制 | Smallest Good Base
- Spring RESTful Web服务中的异常处理
- 超越JAX-RS规范:Apache CXF搜索扩展
- 购书中心管理信息系统(含源文件)
- ICCV2021 Oral-TAUFacebook提出了通用的Attention模型可解释性
- 「leetcode」530. 二叉搜索树的最小绝对差:【有序数组】详解
- JAVA 身份证号码的验证
- iOS逆向 和班尼特福迪一起攻克难关(unity)
- Windows事件ID及解释大全
- Linux CFS调度算法核心解析
- 解析海康摄像机推送的PS流
- js禁止鼠标右键的菜单事件
- 笑不死算你命大了 逗你开心的笑话
- [Matlab]椭圆滤波器设计:低通、高通、带通和带阻(4)
- Kitty用HTML和css咋做,使用CSS3代码绘制可爱的Hello Kitty猫
- 【转载】浅谈人工智能:现状、任务、构架与统一 | 正本清源 -- 朱松纯教授
- (转)分辨率 PPI DPI概念定义详解
热门文章
- 笔记本电脑电池使用方式/BIOS信息
- 正在连接192.168.56.101...无法打开到主机的连接。 在端口 1521: 连接失败
- 炒股经常用到的几个工具网站
- win7桌面显示计算机的配置信息,win7电脑界面分区域如何设置?
- 腾讯游戏人脸识别验证是否会保存用户信息
- ATTCK实战系列——红队实战(一)
- 《魔道祖师》第三季预告片首发为汪叽庆生
- 外点罚函数法的MATLAB实现,一、非线性规划问题的几种求解方法1罚函数法(外点法).ppt...
- Bloom Filter与Cuckoo Filter
- Windows Embedded Standard 7 概述