SpringBoot+Mybatis整合jsp项目之EMS

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 🍅程序员小王的博客:程序员小王的博客🍅 欢迎点赞 👍 收藏 ⭐留言 📝🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕🍅java自学的学习路线:java自学的学习路线

1、项目开发流程

1.需求分析: 分析用户主要需求 提取出项目核心功能 根据核心功能构建页面原型


2.库表设计(概要设计): 1.分析整个系统有哪些表 2.分析出表之间关联关系 3.确定字段


3.详细设计(流程图,伪代码): 用来验证库表准确性


4.功能实现(编码): 环境搭建 具体功能实现


5.功能测试 功能测试


6.部署


7.上线 运维


8.维护


2.需求分析

   系统中含有哪些模块?每个模块功能有哪些?


a.用户模块
  登录,注册, 验证码生成
b.员工模块
  查询,删除,更新,添加


3.库表设计

   系统需要2张表: 用户表 user 员工表: employee


   表与表之间关系: user employee 独立两张表


   确定字段:


       user: id 、username、password、name、sex


       employee: id 、 name、salary、gender


   数据库: ems-jsp


4.效果展示

   - 登录页面


4.png


   - 注册页面


5.png


员工展示页面

6.png


添加学生

7.png


修改员工信息并进行数据回显

8.png


5.编码环节

   - 技术选型: springboot + mybatis + jsp + mysql


   - 环境搭建: springboot + jsp + mybatis


   - 项目名字: springBoot-EMS


   - 项目结构

9.png

   - 项目所需依赖:(直接导入就可)

<!--集成springboot的父项目-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
  </parent>
  <dependencies>
    <!--引入springboot的web依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--引入mysql-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.16</version>
    </dependency>
    <!--引入jsp解析相关依赖-->
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    <!--引入mybatis以及整合相关依赖-->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.1.2</version>
    </dependency>
    <!--druid-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.12</version>
    </dependency>
    <!--JSTL表达式-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!--引入junit测试相关依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <!--引入aop相关依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
  </dependencies>

 

项目的核心配置: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)用户登录功能实现:


       1.根据用户输入用户名去数据库中查询是否存在改用户名


       2.如果存在,判断密码是否一致 如果不存在,用户名输入错误


       3.判断密码根据数据库加密密码与对接收密码进行md5加密之后比较


           md5: 只要内容相同 多次计算md5 结果一定是一致


       4.保存用户登录标记到Session中


  /**
     * 登录
     * @param admin
     * @return
     */
    @RequestMapping("login")
    public String login(Admin admin,String code, HttpServletRequest request){
        //1.比较验证是否一致
        String sessionCode = request.getSession().getAttribute("code").toString();
        System.out.println(sessionCode);
        System.out.println(code);
        if(code.equals(sessionCode)){
            String password = MD5Utils.md5(admin.getPassword());
            admin.setPassword(password);
            Admin admin1 = adminService.login(admin);
            System.out.println(admin1);
            if(admin1!=null){
                request.getSession().setAttribute("admin",admin1);
                return "redirect:/emp/show";
            }else
            {
                return "redirect:/login.jsp";
            }
        }else {
            return "redirect:/login.jsp";
        }
    }

7.员工模块功能实现

   (注:只包含Controller层代码,其余代码去我gitee下载)


   #### (1)员工列表:


       1.在数据库中查询所有员工信息


       2.在页面中进行展示


  /**
     * 展示员工
     * @return
     */
    @RequestMapping("show")
    public String showEmp(Model model){
        //调用业务方法
        List<Emp> emps = empService.showEmp();
        //作用域
        model.addAttribute("emps",emps);
        return "emplist";
    }


   #### (2)添加员工:


       1.在员工controller中开发一个添加方法


       2.接收员工信息


       3.将员工信息保存到数据库


       4.跳转到员工列表展示数据

 

    /**
     * 添加员工
     *
     * @param emp
     */
    @RequestMapping("insert")
    public String insert(Emp emp){
        empService.insert(emp);
        return "redirect:/emp/show";
    }


   #### (3)更新员工:


       上半步 数据回显:


           1.点击更新链接传递当前更新员工id到controller


           2.在controller中根据id查询员工信息


           3.将查询到的员工信息保存到作用域


           4.跳转到更新页面展示修改员工信息


 

    /**
     * 数据回显
     * @param id
     * @return
     */
    @RequestMapping("select")
    public String selectEmpById(Integer id,Model model){
        Emp emp = empService.selectEmpById(id);
        model.addAttribute("emp",emp);
        return "updateEmp";
    }


       下半步:


           1.获取更新之后员工信息


           2.更新数据库

    /**
     * 修改员工
     * @param emp
     */
    @RequestMapping("update")
    public String  updateEmp(Emp emp){
        empService.updateEmp(emp);
        return "redirect:/emp/show";
    }


   #### (3)删除员工信息:


       1.点击删除根据id去数据库中删除指定员工信息


       2.删除成功之后跳转到列表页面

/**
     * 删除员工
     * @param emp
     */
    @RequestMapping("delete")
    public String  deleteById(Emp emp){
        empService.deleteById(emp.getId());
  return "redirect:/emp/show";
    }


8.项目源码

原创不易,如果觉得不错请给我一个三连、点赞、收藏、加关注!!!


需要源码资料的同学可以去我gitee的下载源码


gitee地址:https://gitee.com/wanghengjie563135/spring-boot_-ems.git下载相关源码


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
11天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
11天前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
21天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
8天前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
8天前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
8天前
|
XML Java 数据库连接
springboot中整合mybatis及简单使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis,包括依赖引入、配置数据源、创建测试表、编写Mapper接口和XML文件、以及创建Service和Controller层的步骤。
springboot中整合mybatis及简单使用
|
22天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
26天前
|
前端开发 JavaScript Java
技术分享:使用Spring Boot3.3与MyBatis-Plus联合实现多层次树结构的异步加载策略
在现代Web开发中,处理多层次树形结构数据是一项常见且重要的任务。这些结构广泛应用于分类管理、组织结构、权限管理等场景。为了提升用户体验和系统性能,采用异步加载策略来动态加载树形结构的各个层级变得尤为重要。本文将详细介绍如何使用Spring Boot3.3与MyBatis-Plus联合实现这一功能。
57 2
|
29天前
|
Java 数据库连接 开发者
MyBatis-Plus整合SpringBoot及使用
MyBatis-Plus为MyBatis提供了强大的增强,使得在Spring Boot项目中的数据访问层开发变得更加快捷和简便。通过MyBatis-Plus提供的自动CRUD、灵活的查询构造器和简洁的配置,开发者
36 0
下一篇
无影云桌面