案例开发-日程管理

tigerWei / 2024-02-26 / 原文

功能

  1. 登陆注册
  2. 日程的增删改查

根据MVC三层架构,View层用HTML+CSS + JS写的,Model层是Service和Dao负责对业务的处理,Control层是负责接收客户端的请求,使用service接口响应用户请求。

MVC项目架构模式

MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型视图控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • M:Model 模型层,具体功能如下

    1. 存放和数据库对象的实体类以及一些用于存储非数据库表完整相关的VO对象
    2. 存放一些对数据进行逻辑运算操作的的一些业务处理代码
  • V:View 视图层,具体功能如下

    1. 存放一些视图文件相关的代码 html css js等
    2. 在前后端分离的项目中,后端已经没有视图文件,该层次已经衍化成独立的前端项目
  • C:Controller 控制层,具体功能如下

    1. 接收客户端请求,获得请求数据

    2. 将准备好的数据响应给客户端

MVC模式下,项目中的常见包

  • M:

    1. 实体类包(pojo /entity /bean) 专门存放和数据库对应的实体类和一些VO对象
    2. 数据库访问包(dao/mapper) 专门存放对数据库不同表格CURD方法封装的一些类
    3. 服务包(service) 专门存放对数据进行业务逻辑预算的一些类
  • C:

    1. 控制层包(controller)
  • V:

    1. web目录下的视图资源 html css js img 等
    2. 前端工程化后,在后端项目中已经不存在了


实体类

/**
 * @author happywei
 * @version 1.0
 *
 * 1. 实体类的类名和表格名称应该对应(对应不是一致)
 * 2. 实体类的属性名和表格的列名应该对应
 * 3. 每个属性都必须是私有的
 * 4. 每个属性都应该具备 getter setter
 * 5. 必须具备无参构造器
 * 6. 应该实现序列化接口(缓存分布式项目数据传递可能会将对象序列化)
 * 7. 应该重写类的hashcode相equals方法
 * 8. toString是否重写都可以
 *
 * 使用lombok帮助我们生成这些内容getterSetter 全参构造无参构造equals hashcode
 *      Lombok使用步骤
 *          1. 检查idea是否已经安装了lombok插件
 *          2. 检査是否勾选了 enable annotation processer
 *          3. 导入lombok依赖
 *          3. 在实体类上添加注解
 */
@AllArgsConstructor //添加了全参构造
@NoArgsConstructor //添加了无参构造
@Data   //getter setter 全参构造 无参构造 equals hashcode
public class SysUser implements Serializable {
    private Integer uid;
    private String username;
    private String userPwd;

}

准备包结构

  • controller 控制层代码,主要由Servlet组成
  • service 服务层代码,主要用于处理业务逻辑
  • dao 数据访问层,主要用户定义对于各个表格的CURD的方法
  • pojo 实体类层,主要用于存放和数据库对应的实体类以及一些VO对象
  • util 工具类包,主要用存放一些工具类
  • common 公共包,主要用户存放一些其他公共代码
  • filters 过滤器包,专门用于存放一些过滤器
  • test 测试代码包,专门用于定义一些测试的功能代码,上线前应该删掉,后期用maven可以自动处理掉