当前位置: 首页 > news >正文

Spring Boot使用配置方式整合MyBatis

文章目录

  • 一、实战目标
  • 二、步骤概览
    • 1. 创建部门映射器接口
    • 2. 创建映射器配置文件
    • 3. 配置全局映射器
    • 4. 测试映射器接口
  • 三、详细步骤
    • 1、创建部门映射器接口
    • 2、创建映射器配置文件
    • 3、配置全局映射器
    • 4、测试映射器接口
  • 四、结语

在这里插入图片描述

一、实战目标

在本实战课程中,我们将学习如何在Spring Boot项目中使用配置方式整合MyBatis框架,并实现部门管理功能。

二、步骤概览

  1. 创建部门映射器接口
  2. 创建映射器配置文件
  3. 配置全局映射器
  4. 测试映射器接口

1. 创建部门映射器接口

net.huawei.hrsys_ssm.mapper包下创建DepartmentMapper接口,使用@Mapper注解标记。

2. 创建映射器配置文件

resources/mapper目录下创建DepartmentMapper.xml,定义SQL映射。

3. 配置全局映射器

在MyBatis配置文件中指定映射器配置文件位置和别名路径。

4. 测试映射器接口

创建TestDepartmentMapper类,使用@SpringBootTest注解进行测试。

三、详细步骤

1、创建部门映射器接口

@Mapper
public interface DepartmentMapper {int insert(Department department);int deleteById(int id);int update(Department department);Department findById(int id);List<Department> findAll();
}

2、创建映射器配置文件

  • DepartmentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="net.huawei.hrsys_ssm.mapper.DepartmentMapper"><!-- 插入部门记录 --><insert id="insert" parameterType="Department"useGeneratedKeys="true" keyProperty="id">insert into department (name, number) values (#{name}, #{number});</insert><!-- 删除部门记录 --><delete id="deleteById" parameterType="int">delete from department where id = #{id};</delete><!-- 更新部门记录 --><update id="update" parameterType="Department">update department set name = #{name}, number = #{number} where id = #{id};</update><!-- 查询全部部门 --><select id="findAll" resultType="Department">select * from department;</select><!-- 创建结果映射,一个部门对应多个员工构成的集合 --><resultMap id="DepartmentWithEmployees" type="Department"><id property="id" column="id"/><result property="name" column="name"/><result property="number" column="number"/><collection property="employees" javaType="list" ofType="Employee"><id property="id" column="e_id"/><result property="age" column="age"/><result property="gender" column="gender"/><result property="name" column="e_name"/><result property="number" column="e_number"/><result property="depId" column="dep_id"/></collection></resultMap><!-- 按标识符查询部门记录 --><select id="findById" resultMap="DepartmentWithEmployees">select d.*, e.id e_id, e.age, e.gender, e.name e_name, e.number e_number, e.dep_idfrom department d left outer join employee e on d.id = e.dep_idwhere d.id = #{id};</select>
</mapper>

3、配置全局映射器

mapper-locations: classpath:mapper/*.xml
type-aliases-package: net.huawei.hrsys_ssm.bean

在这里插入图片描述

4、测试映射器接口

package net.huawei.hrsys_ssm;import net.huawei.hrsys_ssm.bean.Department;
import net.huawei.hrsys_ssm.mapper.DepartmentMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;/*** 功能:测试部门映射器接口* 作者:华卫* 日期:2024年09月25日*/
@SpringBootTest
public class TestDepartmentMapper {@Autowired // 自动装配部门映射器private DepartmentMapper departmentMapper;@Test // 测试查询全部部门public void testFindAll() {// 调用部门映射器的查询全部部门方法List<Department> departments = departmentMapper.findAll();// 利用Lambda表达式遍历部门列表departments.forEach(department -> System.out.println(department));}@Test // 测试按标识符查询部门public void testFindById() {// 定义标识符int id = 1;// 调用部门映射器的按标识符查询部门方法Department department = departmentMapper.findById(id);// 判断部门是否查询成功if (department != null) {System.out.println(department);} else {System.out.println("标识符为[" + id + "]的部门不存在~");}}@Test // 测试插入部门public void testInsert() {// 创建部门对象Department department = new Department();// 设置部门对象属性department.setName("后勤部");department.setNumber(5);// 调用部门映射器的插入方法int count = departmentMapper.insert(department);// 判断部门是否插入成功if (count > 0) {System.out.println("恭喜,部门记录插入成功~");System.out.println("插入的记录:" + departmentMapper.findById(5));} else {System.out.println("遗憾,部门记录插入失败~");}}@Test // 测试更新部门public void testUpdate() {// 查询id为5的部门Department department = departmentMapper.findById(5);// 输出更新前记录System.out.println("记录更新前:" + department);// 设置部门对象属性department.setName("保卫部");department.setNumber(555);// 调用部门映射器的更新部门方法int count = departmentMapper.update(department);// 判断部门是否更新成功if (count > 0) {System.out.println("恭喜,部门记录更新成功~");// 输出更新后记录System.out.println("记录更新后:" + departmentMapper.findById(5));} else {System.out.println("遗憾,部门记录更新失败~");}}@Test // 测试按标识符删除员工public void testDeleteById() {// 输出待删除记录System.out.println("待删除记录:" + departmentMapper.findById(5));// 调用部门映射器的按标识符删除部门方法int count = departmentMapper.deleteById(5);// 判断部门是否删除成功if (count > 0) {System.out.println("恭喜,部门记录删除成功~");} else {System.out.println("遗憾,部门记录删除失败~");}}
}

四、结语

通过本课程,你将掌握Spring Boot与MyBatis的整合,并能够实现部门管理的CRUD操作。

http://www.lryc.cn/news/446782.html

相关文章:

  • HarmonyOS第一课-应用程序框架基础习题答案
  • 滚雪球学SpringCloud[10.2讲]:微服务项目的性能优化与调优
  • EasyExcel将数据库里面的数据生成excel文件
  • 【YOLO学习】YOLOv1详解
  • HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)
  • python测试开发---前后端交互Axios
  • 删除视频最后几帧 剪切视频
  • SSM框架学习(四、SpringMVC实战:构建高效表述层框架)
  • 戴尔笔记本电脑——重装系统
  • 领夹麦克风哪个品牌音质最好,主播一般用什么麦克风
  • 华为静态路由(route-static)
  • Focalboard开源项目管理系统本地Windows部署与远程访问协同办公
  • Java如何操作Elasticsearch
  • cpu路、核、线程、主频、缓存
  • 【AI算法岗面试八股面经【超全整理】——深度学习】
  • STL——map和set【map和set的介绍和使用】【multimap和multiset】
  • 【笔记】神领物流配置本地hosts无法访问域名(排除DNS 排除文件编码问题)已解决
  • Java | Leetcode Java题解之第424题替换后的最长重复字符
  • Xcode 16 Pod init 报错
  • 【数据结构】Java的HashMap 和 HashSet 大全笔记,写算法用到的时候翻一下,百度都省了!(实践篇)
  • Docker 教程:如何查看容器的最后 300 行实时日志
  • Qwen2-VL论文阅读笔记
  • APScheduler、Django实现定时任务,以及任务动态操作
  • SpringBoot开发——整合Apache POI轻松生成精美的Excel报表
  • 海信智能电视的使用心得
  • 【YashanDB知识库】客户端字符集与数据库字符集兼容问题
  • Session和Cookie是什么?有什么区别?分布式Session问题又是什么?
  • 项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)
  • CSS开发全攻略
  • OpenCV运动分析和目标跟踪(3)计算图像序列的加权平均值函数accumulateWeighted()的使用