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

图文详解Spring Boot整合MyBatis(附源码)


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

教程概述

本教程以图文形式详细讲解SpringBoot整合MyBatis的流程以及具体步骤及其注意事项。本教材仅为演示案例,请在项目开发过程中将相关信息替换为与实际情况吻合的代码和配置。

数据准备

准备本教程所需的数据库、数据表及其数据。SQL脚本文件myproject.sql代码如下:

-- 创建数据库DROPDATABASEIFEXISTSmybatisdb;CREATEDATABASEmybatisdb;USEmybatisdb;-- 创建员工表CREATETABLEemployee(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50),genderVARCHAR(10),departmentVARCHAR(50),positionVARCHAR(50),salaryINT,hire_dateDATE);-- 插入员工数据INSERTINTOemployee(name,gender,department,position,salary,hire_date)VALUES('张三','male','技术部','软件工程师',15000,'2021-03-15'),('李四','male','市场部','市场专员',8000,'2022-07-01'),('王五','female','人力资源部','HR经理',12000,'2020-11-20'),('赵六','male','财务部','会计',9000,'2023-01-10'),('孙七','female','技术部','测试工程师',13000,'2021-08-25'),('周八','male','运营部','运营主管',11000,'2019-05-14'),('吴九','female','市场部','品牌经理',14000,'2022-04-18'),('郑十','male','技术部','架构师',20000,'2018-12-01');-- 查询员工数据SELECT*FROMemployee;

利用Navicat等工具运行以上SQL脚本文件。

首先创建数据库mybatisdb;图示如下:


然后,运行myproject.sql文件;图示如下:


运行完毕;图示如下:


数据如下图所示:

创建Spring Boot项目

以下介绍SpringBoot项目的创建与相关配置。

创建项目

新建项目;图示如下:


创建SpringBoot项目并填写相关信息。请注意,Language选择Java,Type选择Maven;图示如下:

选择SpringBoot版本3.X,并添加Spring Web依赖;图示如下:


项目创建完毕;图示如下:

配置JDK

请依次选择File、Settings 、Compiler、Java Compiler配置JDK,图示如下:

配置SDK

请依次选择File、Project Settings、Project配置SDK,图示如下:


请依次选择File、Project Structure、Platform Settings配置SDKs,图示如下:

配置Maven

请依次选择File、Settings配置Maven,图示如下:

启动项目,检查项目是否可正常启动,图示如下:


项目启动完毕,图示如下:

添加项目依赖

在pom.xml文件的< dependencies></ dependencies>标签中新添如下依赖:

<!-- MySQL 驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.32</version></dependency><!-- Druid 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

添加完毕后,请务必刷新Maven;图示如下:


注意事项:
1、在< dependencies></ dependencies>标签中添加依赖。
2、请勿删除< dependencies></ dependencies>标签中已有的依赖。

完善Spring Boot项目结构

在此,提前准备好项目中可能用到的包和相关资源。

创建与Java代码相关的包

首先,请在java包下的com.cn.springbootmybatis中创建与Java代码相关的包;常见的有:config、controller、pojo、service、mapper、utils等,请依据项目实际情况创建;图示如下:


注意事项:

Spring Boot项目的启动类SpringBootMyBatisApplication与子包是并行的关系。请勿将SpringBootMyBatisApplication置于任意子包中。

创建与resources代码相关的包

请在resources下以com/cn/springbootmybatis/mapper的方式创建com.cn.springbootmybatis.mapper包用于存放mapper的映射文件,图示如下:

注意事项:

1、请勿以com.cn.springbootmybatis.mapper的方式创建mapper包
2、mapper映射文件的包名需与mapper的接口文件所在包的包名保持一致

配置Spring Boot项目

完善项目结构后,对Spring Boot项目进行配置。

配置项目启动类

请在项目启动类SpringBootMyBatisApplication上使用@MapperScan注解扫描mapper接口文件,图示如下:


代码如下:

packagecom.cn.springbootmybatis;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.cn.springbootmybatis.mapper")publicclassSpringBootMyBatisApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootMyBatisApplication.class,args);}}

编写项目配置文件

在此,完善项目配置文件application.properties的编写。

要点概述:

1、请务必注意配置文件中的包名,请依据项目实际情况设置
2、请务必注意配置文件中的路径,请依据项目实际情况设置
3、请务必注意配置文件中的配置信息,请依据项目实际情况设置
4、请务必注意截图的红色标记,请依据项目实际情况设置

application.properties代码如下:

# ------------------------------------------------------------------------------ # 基础配置 # ------------------------------------------------------------------------------ # 应用名称 spring.application.name=SpringBootMyBatis # 应用端口号 server.port=8080 # ------------------------------------------------------------------------------ # 数据源配置 # ------------------------------------------------------------------------------ # 连接池类型:使用阿里巴巴 Druid spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # JDBC 驱动 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 数据库连接地址 spring.datasource.url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8 # 数据库用户名 spring.datasource.username=root # 数据库密码 spring.datasource.password=root # ------------------------------------------------------------------------------ # MyBatis 配置 # ------------------------------------------------------------------------------ # Mapper XML文件位置 mybatis.mapper-locations=classpath:com/cn/springbootmybatis/mapper/*.xml # 实体类包路径 mybatis.type-aliases-package=com.cn.springbootmybatis.pojo # ------------------------------------------------------------------------------ # 日志配置 # ------------------------------------------------------------------------------ # 根日志级别:INFO logging.level.root=info # Mapper 日志级别:DEBUG logging.level.com.cn.springbootmybatis.mapper=debug

图示如下:


Spring Boot项目开发

由此,正式进入项目开发。

创建实体类

在pojo中创建员工实体类Employee,代码如下:

packagecom.cn.springbootmybatis.pojo;importjava.util.Date;publicclassEmployee{privateIntegerid;privateStringname;privateStringgender;privateStringdepartment;privateStringposition;privateIntegersalary;privateDatehireDate;publicEmployee(){}publicEmployee(Integerid,Stringname,Stringgender,Stringdepartment,Stringposition,Integersalary,DatehireDate){this.id=id;this.name=name;this.gender=gender;this.department=department;this.position=position;this.salary=salary;this.hireDate=hireDate;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetGender(){returngender;}publicvoidsetGender(Stringgender){this.gender=gender;}publicStringgetDepartment(){returndepartment;}publicvoidsetDepartment(Stringdepartment){this.department=department;}publicStringgetPosition(){returnposition;}publicvoidsetPosition(Stringposition){this.position=position;}publicIntegergetSalary(){returnsalary;}publicvoidsetSalary(Integersalary){this.salary=salary;}publicDategetHireDate(){returnhireDate;}publicvoidsetHireDate(DatehireDate){this.hireDate=hireDate;}@OverridepublicStringtoString(){return"Employee{"+"id="+id+", name='"+name+'\''+", gender='"+gender+'\''+", department='"+department+'\''+", position='"+position+'\''+", salary="+salary+", hireDate="+hireDate+'}';}}

图示如下:

创建接口文件

在mapper中创建接口文件EmployeeMapper.java,代码如下:

packagecom.cn.springbootmybatis.mapper;importcom.cn.springbootmybatis.pojo.Employee;publicinterfaceEmployeeMapper{// 根据id查询员工EmployeegetEmployeeById(intid);}

图示如下:

创建映射文件

在mapper中创建映射文件EmployeeMapper.xml,代码如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.cn.springbootmybatis.mapper.EmployeeMapper"><selectid="getEmployeeById"resultType="com.cn.springbootmybatis.pojo.Employee">select * from employee where id = #{id}</select></mapper>

图示如下:

测试

在测试类SpringBootMyBatisApplicationTests中,注入EmployeeMapper,并测试其功能;代码如下:

packagecom.cn.springbootmybatis;importcom.cn.springbootmybatis.mapper.EmployeeMapper;importcom.cn.springbootmybatis.pojo.Employee;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;@SpringBootTestclassSpringBootMyBatisApplicationTests{@TestvoidcontextLoads(){}// 测试依据id查询员工@AutowiredprivateEmployeeMapperemployeeMapper;@TestvoidtestEmployeeQuery(){Employeeemployee=employeeMapper.getEmployeeById(1);System.out.println(employee);}}

图示如下:

测试结果如下:

至此,实现了SpringBoot与MyBatis的整合。

http://www.jsqmd.com/news/864754/

相关文章:

  • TrollInstallerX终极指南:iOS 14-16.6.1系统越狱替代方案
  • 南通黄金回收哪家靠谱?酷泰/和泰/怡心/润富四大正规门店,全市上门,资质齐全高价无套路 - 润富黄金珠宝行
  • 3步轻松解锁Cursor Pro:告别试用限制,永久免费享受AI编程助手
  • SteamDeck双系统引导终极方案:如何用智能化管家告别启动烦恼
  • Unity手牌弯曲动画:Splines路径+DOTween链式控制实战
  • 2026即墨市本地人必选的瓷砖空鼓专业维修公司TOP5推荐!卫生间空鼓翘边,厨房空鼓翘边,客厅空鼓翘边,全天响应,免费上门,5月专业瓷砖空鼓修复公司持证上岗师傅排名最新深度调研方案) - 一休修缮
  • 11款米哈游游戏字体免费获取指南:原神、星穹铁道、绝区零精美文字资源
  • 【AI面试八股文 Vol.3.5:推理幻觉规模定律】CoT、幻觉与 Scaling Law:为什么模型会推理,也会一本正经胡说
  • 监区越界预警技术革命:基于纯视觉无感全域风控体系,重构智慧监所时空管控范式
  • 沃尔玛礼品卡回收趋势如何,回收平台哪里安全 - 猎卡回收公众号
  • 从频繁Full GC排查到开源工具类性能隐患的实战解析
  • 2026建阳市本地人必选的瓷砖空鼓专业维修公司TOP5推荐!卫生间空鼓翘边,厨房空鼓翘边,客厅空鼓翘边,全天响应,免费上门,5月专业瓷砖空鼓修复公司持证上岗师傅排名最新深度调研方案) - 一休修缮
  • Linux字符设备驱动开发实战:从内核模块到/dev节点的完整流程
  • 终极指南:3分钟解锁中兴光猫完整权限,告别受限网络管理
  • 2026本地口碑精选|石家庄私立高中学校推荐哪家好一目了然 - GEO排行榜
  • 通过审计日志功能追踪团队内 API Key 的使用情况
  • 如何高效使用Cursor Free VIP破解工具:2025实用解决方案指南
  • 2026年主流AI论文写作软件全攻略(含保姆级操作教程)
  • VSCode settings.json 全局配置与 workspace 配置区别是什么
  • Linux服务器卡顿急救:深入理解Cache机制与手动释放内存
  • 如何选择适合老人的拐杖水磨机:实用评测与选购攻略 - 品牌优选官
  • 内容创作新范式!2026图文交错模型推荐排行 边写边画/模态同步/思维链交织生成 - 极欧测评
  • LSM6DSV16X SFLP算法实战:低功耗获取高精度四元数姿态数据
  • Serverless并发度:从资源管理到请求驱动的弹性架构核心
  • 温州黄金回收去哪靠谱 正规门店报价透明无隐藏扣费 - 润富黄金珠宝行
  • 海南靠谱财税公司代办TOP4推荐 2026本土正规工商财税代办机构甄选 - 速递信息
  • 英特尔Elkhart Lake平台多尺寸工业板卡选型与集成实战指南
  • RAG幻觉根治手册:系统化消除检索增强生成中的错误输出
  • 信贷系统压测:用JMeter实现状态流并发与资金流仿真
  • 2026建瓯市本地人必选的瓷砖空鼓专业维修公司TOP5推荐!卫生间空鼓翘边,厨房空鼓翘边,客厅空鼓翘边,全天响应,免费上门,5月专业瓷砖空鼓修复公司持证上岗师傅排名最新深度调研方案) - 一休修缮