1、项目开发流程
-
需求分析: 分析用户主要需求 提取出项目核心功能 根据核心功能构建页面原型
-
库表设计(概要设计): 1.分析整个系统有哪些表 2.分析出表之间关联关系 3.确定字段
-
详细设计(流程图,伪代码): 用来验证库表准确性
-
功能实现(编码): 环境搭建 具体功能实现
-
功能测试 功能测试
-
部署
-
上线 运维
-
维护
2.需求分析
系统中含有哪些模块?每个模块功能有哪些?
a.用户模块
登录,注册, 验证码生成
b.员工模块
查询,删除,更新,添加
3.库表设计
系统需要2张表: 用户表 user 员工表: employee
表与表之间关系: user employee 独立两张表
确定字段:
user: id 、username、password、name、sex
employee: id 、 name、salary、gender
数据库: ems-jsp
4.效果展示
- 登录页面
- 注册页面
- 员工展示页面
- 添加学生
- 修改员工信息并进行数据回显
5.编码环节
-
技术选型: springboot + mybatis + jsp + mysql
-
环境搭建: springboot + jsp + mybatis
-
项目名字: springBoot-EMS
-
项目结构
- 项目所需依赖:(直接导入就可)
org.springframework.boot
spring-boot-starter-parent
2.2.5.RELEASE
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
8.0.16
org.apache.tomcat.embed
tomcat-embed-jasper
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.2
com.alibaba
druid
1.1.12
javax.servlet
jstl
1.2
org.springframework.boot
spring-boot-starter-test
org.springframework.boot
spring-boot-starter-aop
- 项目的核心配置:
application.properties
#内置服务器端口设置
server.port=8080
#项目名设置
server.servlet.context-path=/ems
#配置jsp页面的前后缀
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
#数据源相关配置 driverClassName url username password
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ems?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
#设置mybatis的mapper文件所在路径 别名
mybatis.mapper-locations=classpath:com/tjcu/mapper/*Mapper.xml
mybatis.type-aliases-package=com.tjcu.entity
#开启jsp页面的热部署
server.servlet.jsp.init-parameters.development=true
- SpringBoot入口
/**
-
@author 王恒杰
-
@date 2021/11/25 19:15
-
@Description:
*/
@SpringBootApplication
@MapperScan(“com.tjcu.dao”)
public class EmsApplication {
public static void main(String[] args) {
SpringApplication.run(EmsApplication.class,args);
}
}
6.用户模块功能实现
(注:只包含Controller层代码,其余代码去我gitee下载)
(1)验证码生成功能实现:
1.生成随机字符
2.放入session
3.生成图片并响应
/**
- 用来生成验证码方法
*/
@RequestMapping(“generateImageCode”)
public void generateImageCode(HttpSession session, HttpServletResponse response) throws IOException {
//1.生成随机字符串
String code = VerifyCodeUtils.generateVerifyCode(4);
//2.保存随机字符串到Session中
session.setAttribute(“code”,code);
//3.将随机字符串生成图片
//4.通过response响应图片
response.setContentType(“image/png”);//指定响应类型
ServletOutputStream os = response.getOutputStream();
VerifyCodeUtils.outputImage(80,30,os,code);
}
(2)用户注册功能实现:
1.根据用户输入验证码比较session中验证码是否一致
2.如果一致完成注册,如果不一致直接返回错误
3.完成注册向数据库中保存当前的用户信息
a.保存信息之前判断当前用户名是否存在 如果存在直接返回错误
b.如果当前用户名不存在保存用户信息 保存用户信息给密码进行加密处理
/**
-
注册
-
@param admin
*/
@RequestMapping(“register”)
public String register(Admin admin){
String password = MD5Utils.md5(admin.getPassword());
admin.setPassword(password);
adminService.register(admin);
return “redirect:/login.jsp”;
}
(3)用户登录功能实现:
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
n.setPassword(password);
adminService.register(admin);
return “redirect:/login.jsp”;
}
(3)用户登录功能实现:
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
[外链图片转存中…(img-a9Zc3n4B-1714460466234)]
[外链图片转存中…(img-m33NP5Be-1714460466234)]
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。