传智播客OA项目学习--阶段二(实体设计及技巧)
时间:2022-07-22
本文章向大家介绍传智播客OA项目学习--阶段二(实体设计及技巧),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、设计实体
1、一般一个增删改查对应一个实体
2、一般页面引用了其他的实体时,表示与这个实体有关系
3、实体的属性:
①主键
②关联关系属性
③一般属性
④特殊属性:年龄,工龄等
二、Hibernate映射(由于之前只看过MyBatis没看过Hibernate,所以写的比较啰嗦)
1、多对一
<many-to-one name="本类中的属性名" class="对用的类名" column="外键" />
2、一对多
<set name="本类中的属性名">
<key column="对应对象的外键"></key>
<one-to-many class="对应对象类名" />
</set>
3、多对多
<set name="本类中的属性名" table="中间表">
<key column="对应对象中的外键"></key>
<many-to-many class="对应对象类名" column="本类中的外键" />
</set>
流程总结:
1、写注释
格式: XX 属性,表达的是本对象与 XX 的 XX 关系。
2、复制模板
3、填空 (在对应关系中、一定要注意“对应的关系”)
一个简单的例子
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.oa.domain">
<class name="Department" table="itcast_department">
<!-- 主键,自增 -->
<id name="id">
<generator class="native"/>
</id>
<!-- 一般属性 -->
<property name="name" />
<property name="description" />
<!-- 关联关系属性 -->
<!-- users属性,本类与User类为一对多关系 -->
<set name="users">
<key column="departmentId"></key>
<one-to-many class="User"></one-to-many>
</set>
<!-- parent属性,本类与Department(父类) 为多对一的关系 -->
<many-to-one name="parent" class="Department" column="parentId"></many-to-one>
<!-- children属性,本类与Department(子类) 为一对多的关系 -->
<set name="children">
<key column="parentId"></key>
<one-to-many class="Department"></one-to-many>
</set>
</class>
</hibernate-mapping>
- angular之interceptors拦截器
- js list数据 转 树状 层级 JSON,递归生成树状 层级 JSON
- jquery 图片文件转base64 显示
- AngularJS 用 $http.jsonp 跨域SyntaxError问题
- 简单的java socket 示例
- Hadoop二次开发环境构建
- Android EditText 获得输入焦点 以及requestfocus()失效的问题
- 【直播】我的基因组68:看看哪些基因的突变较多,哪些较少
- GDI+编程
- GDI编程
- ADO访问数据库
- 【直播】我的基因组76:用krona对血液全基因组的菌比例可视化
- 【直播】我的基因组74:快速给测序reads比对到物种
- 用ADO操作数据库的方法步骤
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【前端】:模块化 - 打包技术
- 代码详解——《无人驾驶车辆模型预测控制》3.3.3参考路径更改
- MySQL redo与undo日志解析
- 样本不平衡造成的影响和解决方案
- 代码详解——NMPC路径跟踪复杂参考路径设置
- 代码详解——NMPC之加入控制平顺性惩罚项
- 代码详解——采用控制增量作为控制输入的NMPC路径跟踪
- 程序员进阶系列:年少不懂爱家家,懂了已是猿中人。
- 代码详解——Simulink中的运动学模型
- Spring Boot 特性之 Failure Analysis
- 「周末福报」头铁的我,一头扎进了知识盲区 ThreadLocal
- 「周末福报」如何高效使用 Kryo
- 「刷题警告」递归算法
- 轻松学Pytorch – 构建生成对抗网络
- 「周末福报」你了解 SPI 吗?