简单的项目入门
开发笔记
合格的开发人员: 按需按质按时完成开发任务
软件开发生命周期
问题定义
可行性分析
总体描述
系统设计(架构设计+数据库设计)
编码
调试和测试
验收与运行
(维护升级或废弃阶段)
分析义务需求
前端开发人员提供页面原型--》JSON格式数据
数据库设计
基于数据库三大范式理论(减少数据的冗余、提高表的可扩展性、可维护性)
数据库表的三大范式
表的设计 公共字段
定义:每个表中都应该有的字段。
主键ID: 用于标识行的唯一记录(不能参与任何业务逻辑)
排序字段:sortnum(专注用于排序作用)
状态字段:status(0无效 1 有效 、、、)
createdate :当前时间
updatedate: 更新时间
createuser: 操作用户
updateuser:更新用户
架构设计
Sprin+SpringMVC+Mybatis 架构设计
编码:《阿里巴巴编码规范》
表设计
一对多(外键放在多的一方)
一对一(外键放在任意一方)
多对多(外键放在第三张表)
问题表(1) 选项表(N) 外键放在多的一方
字段和表名称也由规约
全部以小写为主(数据库不区分大小写(wimdows下不区分、linux下mysql默认是区分大小写的))
问题表(questions)
| 字段名称 | 类型 | 备注 |
|---|---|---|
| id | int | 自增ID |
| question | varchar | 问题名称 |
| correctanswer | int | 选项答案(顺序) |
| sortnum | int | 排序字段(asc)值越小,优先级越高 |
| status | smallint | 0无效 1有效 |
选项表 (answers)
| 字段名称 | 类型 | 备注 |
|---|---|---|
| id | int | 自增ID |
| aname | varchar | 选项名称 |
| qid | int | 关联问题表【id】 |
| sortnum | int | 排序字段 |
| status | smallint | 0无效 1有效 |
外键约束:
优点:保证数据库的完整性
缺点:会影响数据库的性能
问题1:entity.po?
答:po vo dto
PO(Persistent Object)持久层对象,它是由一组属性和属性的get和set方法组成,最简单的 PO 就是对应数据库中某个表中的一条记录
BO(Business Object)业务层对象,是简单的真实世界的软件抽象,通常位于中间层。BO 的主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。
VO(Value Object)值对象(页面对象),VO(Value Object)值对象,通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已,但 VO 应该是抽象出的业务对象,可以和表对应,也可以不对应,这根据业务的需要。
DTO(Data Transfer Object)数据传输对象,主要用于远程调用等需要大量传输对象的地方,比如我们有一个交易订单表,含有 25 个字段,那么其对应的 PO 就有 25 个属性,但我们的页面上只需要显示 5 个字段,因此没有必要把整个 PO 对象传递给客户端,这时我们只需把仅有 5 个属性的 DTO 把结果传递给客户端即可,而且如果用这个对象来对应界面的显示对象,那此时它的身份就转为 VO。使用 DTO 的好处有两个,一是能避免传递过多的无用数据,提高数据的传输速度;二是能隐藏后端的表结构。问题2:实体类为什么 implements Serializable?
答案:Serializable 空接口 ---》标记接口(jvm)
序列化
目的:为了网络传输
序列化:将对象转换成字节序列(二进制)过程。称为序列化
反序列化:将字节序列恢复成对象的过程,称为反序列化。
跨进程不加序列化会出现错误
实体Bean作用 数据传输的载体。
问题3:上方@Data
- 安装lombok插件(小辣椒)
- 导入lombok依赖
- 在类上加注解
问题4:Mybatis代码生成器
下载Mybatis生成器
修改配置文件中jar包所在位置
生成文件存放位置
执行生成代码的指令

浙公网安备 33010602011771号