文章目录
第二天
- 主要涉及如何导入一个已经开发部分的项目
- 如何分页查询
- 如何级联查询
1 需求分析
面面是一款面向程序员的面试刷题小程序。针对目前大量学员在培训完之后直接去面试企业的通过
率低的问题,公司研发了黑马面面小程序,学员在空闲时间可以通过查看企业真实面试题,不仅可以查
看企业真题,也可以通过刷题寻找自己的短板进行补充。
1.1 运营管理后台
运营管理后台是一个Web应用,运用前期学过的Web应用开发知识,采用MVC设计模式来完成整体开
发。管理后台的网页部分,也采用前后端分离的方式,全部通过ajax调用后端API接口来完成。
1.2 微信小程序
微信小程序有自己独立的开发环境,其开发工具是微信官方提供,通过该开发工具完成小程序页面的开
发及与微信生态环境的交互。小程序端的业务数据获取和业务提交只能通过发送ajax请求与后台接口通
信来完成所有的业务操作,所以后台服务器必须为小程序所有业务操作提供相应的API接口(应用程序
编程接口),数据交换可采用常规的JSON格式。
这种开发模式,是典型的前后端分离模式,前后端分离核心思想就是前端HTML页面通过AJAX调用后端
API接口来完成,并使用JSON数据进行交互。
1.3 总结
管理后台:3天
1 学科管理:学科的CRUD,学科目录CRUD、学科标签的CRUD
2 题库管理:
基础题库:普通人员录入,
精准题库:管理审核
3 权限控制:普通用户和VIP用户
微信小程序:2天
1 微信公众平台:注册微信小程序
2 ....
2 项目设计
2.1 数据库设计
数据库设计:18张表 13张主表 5张关系表(多对多关系的用关系表tr开头)
1-5 用户权限有关表 第三次课
6 常见的数据信息表
7-16 后台管理业务相关表
17-18 微信小程序业务相关表
2.2 架构设计
技术架构
系统架构
2.3 工程设计
通过系统概述分析,微信小程序端使用微信小程序开发工具来完成小程序端页面的开发,微信小程序
API接口、运营管理后台API接口及运营管理后台网页中的ajax通信全部通过IDEA开发工具来开发。
通过以上分析,至少需要构建2个独立的Web应用,虽然独立但它们还是需要访问同一个数据库中的数
据表,所以也会使用一些相同的数据模型和工具,比如POJO类、实体类、常量类、工具类等。所以最
终采用1个父工程,多个子模块的方式来组织该项目。
本项目最终会有1个父工程,4个子模块构成。
3 项目初始化
3.1 初始化数据库
1 创建数据库
drop database if exists `itheima_mm`;
create database `itheima_mm`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
2 导入数据脚本
选中创建的数据库,运行itheima_mm_last.sql文件,该文件存放在资料-数据库设计中。
3.2 初始化工程
3.3 关于父工程
父工程负责所有子模块需要的三方库的依赖管理,本工程涉及到Web开发、mysql数据库连接、
mybatis开发、dom解析、HTTP网络编程、Redis开发、微信数据解析、文件上传及常规log4j、slf4j、
lombok、fastjson、tomcat7插件等工具框架的使用。
如图是工程需要的所有库的版本信息:
3.4 关于公共模块
mm_common模块是公共模块,其作用是其他子模块共同需要的类和依赖库进行统一管理,父模块已
有的资源子模块无需再次导入或依赖。
本项目后续要管理后台子模块和创建微信小程序API子模块,目前两个模块的常用POJO类、实体类、常
量类、工具类、基础父类都放在公共模块中,如图所示:
tips:pojo类与entity类的区别:
pojo类和数据库表是一一对应的,但是有些类是不和数据库对应的,它们和前端界面相对应,采用entity类
另外两个模块都是基于Web工程,都需要用到自定义MVC框架mvc_framework子模块及用于Web开发
的数据库、redis、日志及其他常规工具框架
3.5 关于MVC框架模块
mvc_framework模块是自定义MVC框架,该框架加入了类注解(用于实例化控制器、实例化业务
类)、属性注解(把已实例化的对象到注入到对象属性)、基于配置文件读取扫描包、字符编码过滤
器、自定义异常、常量等元素,是一个可复用的独立MVC框架模块,如图所示:
3.6 关于管理后台模块
mm_oms_backend模块是基于Web骨架创建的模块,使用了自定义的MVC框架。已完成了初始化的资
源及目录结构的初始化,如图所示:
java目录
已创建了分层包controller、dao及service,其他子包根据后续业务逐一创建。
resources目录
提供了mybatis配置,log4j配置及自定义框架基础配置hm-mvc.xml。
webapp目录
提供了后续常用的静态网页。
4 开发思路与实现分析
任何功能的开发,先要通过产品原型详细此功能的业务需求,根据自己所学知识和经验构建其实现思
路,梳理出实现的主次关系、数据库关系及技术要点,如果业务复杂,先把流程走通,然后再逐一实现
其它功能。
功能需求和开发的基本思路明确后,其功能实现的方式有多形式,一般来讲一个功能的开发,可以从前
往后写,即先去初始化前端代码,发送ajax请求,根据请求做处理,然后去写控制器Controller,之后
去写业务Service,最后完成数据Dao,全部完成后一起与页面联调,这个实现过程也可以反过来完成,即
从后往前写,也就是从Dao层开始写,最后完成页面请求发送与处理。
5 登录模块
5.1 登录
5.2 登出
6 学科管理模块
6.1 新增学科
6.2 学科列表展示(分页)
6.3 学科更新