简单的项目入门

开发笔记

合格的开发人员: 按需按质按时完成开发任务

软件开发生命周期

问题定义

可行性分析

总体描述

系统设计(架构设计+数据库设计)

编码

调试和测试

验收与运行

(维护升级或废弃阶段)

分析义务需求

前端开发人员提供页面原型--》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

  1. 安装lombok插件(小辣椒)
  2. 导入lombok依赖
  3. 在类上加注解

问题4:Mybatis代码生成器

下载Mybatis生成器

修改配置文件中jar包所在位置

生成文件存放位置

执行生成代码的指令

posted @ 2020-12-21 21:48  左岸小镇_梦归  阅读(103)  评论(0)    收藏  举报