前两天刚看玩狂神的mybatis整合视频,在结尾出给我们留了一道将前两天的员工管理系统将mybatis整合进来的作业。现在附上我的作业成果,教你如何将mybatis进行整合进来吧。

对于将mybatis整合进入springboot大致有下列步骤

  1. 建立数据库并创建数据表
  2. 导入依赖,并在配置文件将参数配置好
  3. 建立mapper层,将数据库的增删查改操作的接口和实现类写好
  4. 编写好(service)层代码操作
  5. 建立controller层,把控制请求隐射的代码控制好
  6. 测试!

下面我就带大家遵循以上步骤教大家进行整合操作:

首先建立好数据表,并且插入相关的数据

create table Employee
(id int(10) unsigned not null auto_increment primary key ,lastname varchar(50) not null default '',email varchar(50) default '',gender int default null,departmentId int(10) default null,birth Date not null
)ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;#插入数据
INSERT INTO `Employee` VALUES (1001, 'AA1', '24734674@qq.com', 1, 101, NOW()),
(1002, 'AA2', '24734674@qq.com', 0, 102, NOW()),
(1003, 'AA3', '24734674@qq.com', 1, 103, NOW()),
(1004, 'AA4', '24734674@qq.com', 0, 104, NOW()),
(1005, 'AA5', '24734674@qq.com', 1, 105, NOW());#NOW()指的是获取当前时间#查询该表所有数据
select * from Employee;
#查看表结构
desc Employee;
#删除数据表
drop table Employee;create table Department (id int(10) unsigned not null auto_increment primary key ,departmentName varchar(50) default ''
)ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
#插入数据
insert into Department
values (101,'教学部'),(102,'市场部'),(103,'教研部'),(104,'运营部'),(105,'后勤部');select * from Department;

其次是在application.propertises配置数据库和mybatis的相关操作

#关闭thymeleaf模版引擎缓存
spring.thymeleaf.cache=false
#设置首页
server.servlet.context-path=/kuang
#我们的配置文件的真实位置
spring.messages.basename=i18n.login
#日期时间格式化
spring.mvc.format.date=yyyy-MM-dd#数据库的配置文件
spring.datasource.username=root
spring.datasource.password=000000
spring.datasource.url=jdbc:mysql://localhost:3306/Emp?useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver#整合mybatis
mybatis.type-aliases-package=com.kuang.pojo
#用于创建mapper实现类的路径,
mybatis.mapper-locations=classpath:mapper/*.xml

在pom.xml文件中导入这三个依赖:

<!---mybatis-><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version>
</dependency><!--jdbc-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency><!--mysql数据库驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency>

编写mapper层,EmployeeMapper,DepartmentMapper

Department接口:

package com.kuang.mapper;
import com.kuang.pojo.Department;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;import java.util.Collection;@Repository
@Mapper
public interface DepartmentMapper {//查询全部部门信息Collection<Department> queryAllDepartment ();//通过ID获取部门Department queryAllDepartmentById(Integer id);
}

EmployeeMapper实现类:根据上述配置文件的最后一条来创建mapper实现类,否则会找不到该mapper实现类:

对应上述路径如图所示;

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.DepartmentMapper">
<!--查询全部员工信息--><select id="queryAllDepartment" resultType="Department">select * from Emp.department;</select>
<!--通过id查询员工信息--><select id="queryAllDepartmentById" resultType="Department" parameterType="int">select * from Emp.department where id=#{id};</select>
</mapper>

EmployeeMapper接口:

package com.kuang.mapper;
import com.kuang.pojo.Employee;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.Collection;
@Repository
@Mapper
public interface EmployeeMapper {//查询全部员工Collection<Employee> queryAllEmployee();//通过Id查询员工Employee queryAllEmployeeById(int id);//增加一个员工int addEmployee(Employee employee);//更新操作int updateEmployee(Employee employee);//通过id删除一个员工int deleteEmployeeById(int id);
}

Employee接口的实现类:

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.EmployeeMapper">
<!--抽取sql片段--><sql id="BASE_COLUMN">lastname,email,gender,departmentId,birth</sql><!--映射字段--><resultMap id="EmployeeResultMap" type="Employee"><id property="id" column="id"/><result property="lastName" column="lastname"/><result property="email" column="email"/><result property="gender" column="gender"/><result property="department.id" column="departmentId"/><result property="department.departmentName" column="departmentName"/><result property="birth" column="birth"/></resultMap><!--查询所有的员工信息--><select id="queryAllEmployee" resultMap="EmployeeResultMap">select * from employee,department where employee.departmentId=department.id</select>
<!--通过查询员工信息--><select id="queryAllEmployeeById" parameterType="int" resultMap="EmployeeResultMap">select * from employee where id=#{id};</select><!--添加一个员工信息--><insert id="addEmployee" parameterType="Employee">insert into employee<trim prefix="(" suffix=")"><include refid="BASE_COLUMN"/></trim><trim prefix="VALUES(" suffix=")">#{lastName},#{email},#{gender},#{department.id},#{birth}</trim></insert><!--更新一个员工信息--><update id="updateEmployee" parameterType="Employee">update employee<set><if test="lastName !=null">lastname = #{lastName},</if><if test="email !=null">email = #{email},</if><if test="gender !=null">gender = #{gender},</if><if test="department.id !=null">departmentId = #{department.id},</if><if test="birth !=null">birth = #{birth},</if></set><where>id=#{id}</where></update><!--通过id删除一个员工的信息--><delete id="deleteEmployeeById" parameterType="int">delete from employee where id = #{id};</delete>
</mapper>

mapper层写好之后,接下来写Service层

EmployeeService接口:

package com.kuang.service;
import com.kuang.pojo.Employee;
import org.springframework.stereotype.Service;import java.util.Collection;
@Service
public interface EmployeeService {//查询全部员工Collection<Employee> queryAllEmployee();//通过id查询员工Employee queryAllEmployeeById(Integer id);//增加一个员工int add(Employee employee);//更新一个员工的数据int update(Employee employee);//删除一个员工的数据int delete(int id);
}

EmployeeService接口的实现类:

package com.kuang.service;import com.kuang.mapper.EmployeeMapper;
import com.kuang.pojo.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.Collection;
@Service
public class EmployeeServiceImpl implements EmployeeService{//通过set方法自动注入属性@Autowiredprivate EmployeeMapper employeeMapper;public void setEmployeeMapper(EmployeeMapper employeeMapper) {this.employeeMapper = employeeMapper;}@Overridepublic Collection<Employee> queryAllEmployee() {return employeeMapper.queryAllEmployee();}@Overridepublic Employee queryAllEmployeeById(Integer id) {return employeeMapper.queryAllEmployeeById(id);}@Overridepublic int add(Employee employee) {return employeeMapper.addEmployee(employee);}@Overridepublic int update(Employee employee) {return employeeMapper.updateEmployee(employee);}@Overridepublic int delete(int id) {return employeeMapper.deleteEmployeeById(id);}
}

DepartmentService接口:

package com.kuang.service;
import com.kuang.pojo.Department;
import org.springframework.stereotype.Service;
import java.util.Collection;
@Service
public interface DepartmentService {//查询全部部门信息Collection<Department> queryAllDepartment ();//通过id查询部门信息Department queryAllDepartmentById (int id);}

DepartmentService接口实现类:

package com.kuang.service;
import com.kuang.mapper.DepartmentMapper;
import com.kuang.pojo.Department;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collection;@Service
public class DepartmentServiceImp implements DepartmentService{
@Autowired  //自动注入DepartmentMapperprivate DepartmentMapper departmentMapper;//通过set方法实现public void setDepartmentMapper(DepartmentMapper departmentMapper) {this.departmentMapper = departmentMapper;}
//查询所有的部门信息@Overridepublic Collection<Department> queryAllDepartment() {return departmentMapper.queryAllDepartment();}
//通过id查询某个部门信息@Overridepublic Department queryAllDepartmentById(int id) {return departmentMapper.queryAllDepartmentById(id);}
}

然后便是Controller层的编写了,可以在之前的基础上修改,但是我建议重写一个controller

package com.kuang.controller;
import com.kuang.pojo.Department;
import com.kuang.pojo.Employee;
import com.kuang.service.DepartmentService;
import com.kuang.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.Collection;@Controller
public class EmployeeControllerMybatis {//将Service层的员工属性都注入进来@Autowiredprivate DepartmentService departmentService;@Autowiredprivate EmployeeService employeeService;
//进入到员工管理界面@RequestMapping("/emps")public String list(Model model){System.out.println("进来了");//用来测试请求是否被收到Collection<Employee> employees = employeeService.queryAllEmployee();model.addAttribute("emps",employees);return "emp/list";}//去添加员工的界面@GetMapping("/emp")public String toAddpage(Model model){//查出所有部门Collection<Department> departments = departmentService.queryAllDepartment();model.addAttribute("departments",departments);return "emp/add";}//进行post提交数据
@PostMapping("/emp")public String Add(Employee employee){//添加操作System.out.println(employee.toString());employeeService.add(employee);return "redirect:/emps";
}
//去更新页面
@GetMapping("/emp/{id}")public String toUpdate(@PathVariable("id") Integer id,Model model){//查出原来的数据Employee employee =employeeService.queryAllEmployeeById(id);model.addAttribute("emp",employee);//查出所有部门Collection<Department> departments =departmentService.queryAllDepartment();System.out.println(departments.toString());model.addAttribute("departments",departments);return "emp/update";}//填写完更新信息后提交信息所用@PostMapping("/updateEmp")public String Update(Employee employee){employeeService.update(employee);return "redirect:/emps";}//删除员工操作@RequestMapping("/delemp/{id}")public String DeleteEmp(@PathVariable("id")Integer id){employeeService.delete(id);return "redirect:/emps";}//简单的小测试@RequestMapping("/test")public String test(){return "/emp/text";}
}

好的,如果你对我的作业还满意的话,给个小赞加关注一下吧。建议收藏这宝藏级别的教程

基于springboot的员工管理系统整合Mybatis操作相关推荐

  1. 狂神SpringBoot学习笔记12天-Day 06 基于SpringBoot的员工管理系统

    6.基于SpringBoot的员工管理系统 写在前面 参考CSDN博主Baret-H 原文链接(77条消息) 狂神Spring Boot 员工管理系统 超详细完整实现教程(小白轻松上手~)_Baret ...

  2. 基于springboot的员工人事管理系统

    1.项目介绍 基于springboot的员工人事管理系统3拥有多种角色,管理员可以添加多种角色,并为每种觉得分配不同的权限,具体功能如下: 员工管理.人事管理.工资管理.数据统计视图.角色权限管理.奖 ...

  3. Springboot毕设项目基于SpringBoot的房源管理系统lyh88(java+VUE+Mybatis+Maven+Mysql)

    Springboot毕设项目基于SpringBoot的房源管理系统lyh88(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...

  4. 基于SpringBoot的毕业论文管理系统的设计与实现(开题报告)

    基于Spring Boot的毕业论文管理系统 研究的背景与意义 随着信息化时代的到来,高校的管理工作也面临着信息化改革.目前,各大高校纷纷引入教务管理信息系统来加强和改善对学生.教师以及各种教务信息的 ...

  5. 基于 SpringBoot 的人事管理系统的设计与实现

    1,项目介绍 基于 SpringBoot 的人事管理系统拥有两种角色,分别为管理员和用户.. 本系统为职工人事管理系统.系统分为七大模块:职工管理,部门管理,岗位管理,招聘管理,奖惩管理,薪资管理,培 ...

  6. 基于SpringBoot框架的管理系统【完整项目源码】

    基于SpringBoot框架的管理系统 介绍 基于SpringBoot框架的管理系统 简洁版 : 实现 登录 . 注册 . 增 . 删 . 改 . 查 : 可继续完善增加前端.校验.其他功能等: 可作 ...

  7. 基于springboot实现人事管理系统演示【附项目源码】

    基于springboot实现人事管理系统演示 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat1 ...

  8. java计算机毕业设计基于springboot小区物业管理系统

    项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于小区物业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区物业管理系统,它彻底改变了过 ...

  9. 完成一个SpringBoot项目——员工管理系统

    SpringBoot项目--员工管理系统 该系统为一个springboot项目--员工管理系统的代码,前端使用的模板是thymeleaf,数据写在了dao层,没有用数据库,完全可以实现增删改查 目录 ...

  10. [附源码]计算机毕业设计基于SpringBoot的党务管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. C# 操作Excel
  2. git报ssh variant 'simple' does not support setting port解决办法
  3. c++和java哪个难_2020 年 11 月编程语言排行榜,Python 超越 Java ?
  4. 拼图项目:延期的后果
  5. 系统“烂”怎么办?请看资深专家拆分改造实践
  6. oracle_面试题
  7. [Rethinking on Multi-Stage Networks for Human Pose Estimation] 论文解读
  8. java负零_java数据结构从零基础到负基础
  9. ubuntu下弹框提醒
  10. 【BZOJ3894】文理分科(最小割)
  11. layerdate时间插件不允许选着部分置灰效果处理
  12. 【Win7系统 沙滩啤酒桌面主题】
  13. 关于nginx配置负载均衡,nginx.conf配置文件正确,一直跳出nginx欢迎界面
  14. JNLP文件详细说明
  15. 前端设计 响应式设计_响应设计简介
  16. KAIST URBAN DATA SET/Complex Urban LiDAR Data Set数据集参数
  17. 人体姿态估计-Human Pose Estimation (2021)
  18. oracle insert all 用法
  19. 考研英语作文押题---垃圾分类
  20. 2022年10月大学英语B统考题库网考大学英语B试题(完整版)

热门文章

  1. centos 7 安装sql 审核工具 inception + archer
  2. mathematica 矩阵对角化
  3. Antd的table筛选,表头columns的filters过滤清空
  4. 学计算机应该具备什么能力,学习计算机专业该具备那些能力?
  5. sqlserver数据库的使用
  6. 砍价永远差一刀?拼多多法庭上回复:小数点后有6位......
  7. App项目实战之路(三):原型篇
  8. IOC 回顾 | 踏扁舟一叶 逐野鹤 行广阔
  9. 怎么将flac文件转成mp3文件?
  10. python批量转换音频格式,flac转mp3等