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

实战讲稿:Spring Boot整合MyBatis

文章目录

  • 实战讲稿:Spring Boot整合MyBatis
    • 课程目标
    • 课程内容
      • 1. 创建员工映射器接口
        • 1.1 创建子包
        • 1.2 创建接口
      • 2. 测试员工映射器接口
        • 2.1 自动装配员工映射器
        • 2.2 测试按标识符查询员工方法
        • 2.3 测试查询全部员工方法
        • 2.4 测试插入员工方法
        • 2.5 测试更新员工方法
        • 2.6 测试按标识符删除员工方法
      • 3. 解决字段名与属性名不一致的问题
      • 4. 总结
    • 课后作业

在这里插入图片描述

实战讲稿:Spring Boot整合MyBatis

课程目标

  • 理解Spring Boot与MyBatis整合的基本概念
  • 学会使用注解方式在Spring Boot中创建MyBatis映射器接口
  • 掌握基本的CRUD操作
  • 学会解决字段名与属性名不一致的问题

课程内容

1. 创建员工映射器接口

1.1 创建子包
  • net.huawei.hrsys_ssm包下创建mapper子包。
1.2 创建接口
  • mapper子包中创建EmployeeMapper接口。
package net.huawei.hrsys_ssm.mapper;

import net.huawei.hrsys_ssm.bean.Employee;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface EmployeeMapper {
    @Insert("insert into employee (age, gender, name, number, dep_id) " +
            "values (#{age}, #{gender}, #{name}, #{number}, #{depId})")
    int insert(Employee employee);

    @Delete("delete from employee where id = #{id}")
    int deleteById(int id);

    @Update("update employee set age = #{age}, gender = #{gender}, " +
            "name = #{name}, number = #{number}, dep_id = #{depId} where id = #{id}")
    int update(Employee employee);

    @Select("select * from employee where id = #{id}")
    Employee findById(int id);

    @Select("select * from employee")
    List<Employee> findAll();
}

2. 测试员工映射器接口

2.1 自动装配员工映射器
  • 使用@Autowired注解自动装配EmployeeMapper
2.2 测试按标识符查询员工方法
  • 创建testFindById()测试方法。
@Test
public void testFindById() {
    int id = 1;
    Employee employee = employeeMapper.findById(id);
    if (employee != null) {
        System.out.println(employee);
    } else {
        System.out.println("标识符为[" + id + "]的员工不存在~");
    }
}
2.3 测试查询全部员工方法
  • 创建testFindAll()测试方法。
@Test
public void testFindAll() {
    List<Employee> employees = employeeMapper.findAll();
    employees.forEach(System.out::println);
}
2.4 测试插入员工方法
  • 创建testInsert()测试方法。
@Test
public void testInsert() {
    Employee employee = new Employee();
    employee.setAge(28);
    employee.setGender("男");
    employee.setName("王强");
    employee.setNumber(1013);
    employee.setDepId(3);
    int count = employeeMapper.insert(employee);
    if (count > 0) {
        System.out.println("员工记录插入成功~");
        System.out.println("插入的新记录:" + employeeMapper.findById(13));
    } else {
        System.out.println("员工记录插入失败~");
    }
}
2.5 测试更新员工方法
  • 创建testUpdate()测试方法。
@Test
public void testUpdate() {
    Employee employee = employeeMapper.findById(13);
    System.out.println("记录更新前:" + employee);
    employee.setAge(25);
    employee.setGender("女");
    employee.setName("王兰");
    employee.setNumber(1088);
    employee.setDepId(2);
    int count = employeeMapper.update(employee);
    if (count > 0) {
        System.out.println("员工记录更新成功~");
        System.out.println("记录更新后:" + employeeMapper.findById(13));
    } else {
        System.out.println("员工记录更新失败~");
    }
}
2.6 测试按标识符删除员工方法
  • 创建testDeleteById()测试方法。
@Test
public void testDeleteById() {
    System.out.println("待删除记录:" + employeeMapper.findById(13));
    int count = employeeMapper.deleteById(13);
    if (count > 0) {
        System.out.println("员工记录删除成功~");
    } else {
        System.out.println("员工记录删除失败~");
    }
}

3. 解决字段名与属性名不一致的问题

  • application.propertiesapplication.yml中配置MyBatis的map-underscore-to-camel-case属性值,设置为true

4. 总结

  • 通过本次实战,我们学会了如何在Spring Boot中使用注解方式整合MyBatis,并进行了基本的CRUD操作。
  • 学会了如何测试映射器接口,并解决了字段名与属性名不一致的问题。

课后作业

  • 尝试使用XML方式配置MyBatis映射器接口。
  • 尝试使用MyBatis进行更复杂的查询操作,如连接查询、分组查询等。

http://www.kler.cn/news/314804.html

相关文章:

  • 前端入门:HTML+CSS简便开发的技巧
  • 美国火箭实验室Rocket Lab USA(RKLB)
  • Tomcat窗口运行修改窗口标题显示项目日期时间
  • 【开源免费】基于SpringBoot+Vue.JS教师工作量管理系统(JAVA毕业设计)
  • 【微服务】Eureka的自我保护机制
  • (学习记录)使用 STM32CubeMX——配置时钟(入门)
  • 基于Windows系统以tomcat为案例,讲解如何新增自启动服务,定时重启服务。
  • mybatis 和 mybatis-plus
  • mysql批量修改表前缀
  • 【java实现json转化为CSV文件】
  • 【C++二叉树】二叉树的前序遍历、中序遍历、后序遍历递归与非递归实现
  • Kotlin 极简小抄 P3(函数、函数赋值给变量)
  • LeetCode 第416场周赛个人题解
  • springbootweb集成swagger
  • 王道考研视频——操作系统笔记
  • 海外服务器哪个速度最快且性能稳定
  • GRE隧道在实际部署中的优化、局限性与弊端
  • 排序篇(七大基于比较的排序算法)
  • 华为全联接大会HC2024 观会感
  • QMT获取可转债行情数据方法介绍!支持QMT量化软件的券商平台?
  • Oracle(140)如何创建和管理数据库角色?
  • Android14 蓝牙启动流程
  • C++编程语言:基础设施:命名空间(Bjarne Stroustrup)
  • 基于微信小程序的购物系统+php(lw+演示+源码+运行)
  • App端测——稳定性测试
  • 笔记整理—内核!启动!—linux应用编程、网络编程部分(1)API概述与文件I/O
  • 互联网技术的持续演进:从现在到未来
  • 开放的数据时代:Web3和个人隐私的未来
  • 自动化流程机器人(RPA)
  • 计算机图形学 中心画圆算法 原理及matlab代码实现