版权声明本文原创作者谷哥的小弟作者博客地址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选择JavaType选择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 驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.32/version/dependency!-- Druid 连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.10/version/dependency!-- MyBatis --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.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;SpringBootApplicationMapperScan(com.cn.springbootmybatis.mapper)publicclassSpringBootMyBatisApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootMyBatisApplication.class,args);}}编写项目配置文件在此完善项目配置文件application.properties的编写。要点概述1、请务必注意配置文件中的包名请依据项目实际情况设置2、请务必注意配置文件中的路径请依据项目实际情况设置3、请务必注意配置文件中的配置信息请依据项目实际情况设置4、请务必注意截图的红色标记请依据项目实际情况设置application.properties代码如下# ------------------------------------------------------------------------------ # 基础配置 # ------------------------------------------------------------------------------ # 应用名称 spring.application.nameSpringBootMyBatis # 应用端口号 server.port8080 # ------------------------------------------------------------------------------ # 数据源配置 # ------------------------------------------------------------------------------ # 连接池类型使用阿里巴巴 Druid spring.datasource.typecom.alibaba.druid.pool.DruidDataSource # JDBC 驱动 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 数据库连接地址 spring.datasource.urljdbc:mysql://localhost:3306/mybatisdb?characterEncodingUTF-8 # 数据库用户名 spring.datasource.usernameroot # 数据库密码 spring.datasource.passwordroot # ------------------------------------------------------------------------------ # MyBatis 配置 # ------------------------------------------------------------------------------ # Mapper XML文件位置 mybatis.mapper-locationsclasspath:com/cn/springbootmybatis/mapper/*.xml # 实体类包路径 mybatis.type-aliases-packagecom.cn.springbootmybatis.pojo # ------------------------------------------------------------------------------ # 日志配置 # ------------------------------------------------------------------------------ # 根日志级别INFO logging.level.rootinfo # Mapper 日志级别DEBUG logging.level.com.cn.springbootmybatis.mapperdebug图示如下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.idid;this.namename;this.gendergender;this.departmentdepartment;this.positionposition;this.salarysalary;this.hireDatehireDate;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.idid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicStringgetGender(){returngender;}publicvoidsetGender(Stringgender){this.gendergender;}publicStringgetDepartment(){returndepartment;}publicvoidsetDepartment(Stringdepartment){this.departmentdepartment;}publicStringgetPosition(){returnposition;}publicvoidsetPosition(Stringposition){this.positionposition;}publicIntegergetSalary(){returnsalary;}publicvoidsetSalary(Integersalary){this.salarysalary;}publicDategetHireDate(){returnhireDate;}publicvoidsetHireDate(DatehireDate){this.hireDatehireDate;}OverridepublicStringtoString(){returnEmployee{idid, namename\, gendergender\, departmentdepartment\, positionposition\, salarysalary, hireDatehireDate};}}图示如下创建接口文件在mapper中创建接口文件EmployeeMapper.java代码如下packagecom.cn.springbootmybatis.mapper;importcom.cn.springbootmybatis.pojo.Employee;publicinterfaceEmployeeMapper{// 根据id查询员工EmployeegetEmployeeById(intid);}图示如下创建映射文件在mapper中创建映射文件EmployeeMapper.xml代码如下?xml version1.0 encodingUTF-8 ?!DOCTYPEmapperPUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cn.springbootmybatis.mapper.EmployeeMapperselectidgetEmployeeByIdresultTypecom.cn.springbootmybatis.pojo.Employeeselect * 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(){EmployeeemployeeemployeeMapper.getEmployeeById(1);System.out.println(employee);}}图示如下测试结果如下至此实现了SpringBoot与MyBatis的整合。
图文详解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选择JavaType选择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 驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.32/version/dependency!-- Druid 连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.10/version/dependency!-- MyBatis --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.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;SpringBootApplicationMapperScan(com.cn.springbootmybatis.mapper)publicclassSpringBootMyBatisApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootMyBatisApplication.class,args);}}编写项目配置文件在此完善项目配置文件application.properties的编写。要点概述1、请务必注意配置文件中的包名请依据项目实际情况设置2、请务必注意配置文件中的路径请依据项目实际情况设置3、请务必注意配置文件中的配置信息请依据项目实际情况设置4、请务必注意截图的红色标记请依据项目实际情况设置application.properties代码如下# ------------------------------------------------------------------------------ # 基础配置 # ------------------------------------------------------------------------------ # 应用名称 spring.application.nameSpringBootMyBatis # 应用端口号 server.port8080 # ------------------------------------------------------------------------------ # 数据源配置 # ------------------------------------------------------------------------------ # 连接池类型使用阿里巴巴 Druid spring.datasource.typecom.alibaba.druid.pool.DruidDataSource # JDBC 驱动 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 数据库连接地址 spring.datasource.urljdbc:mysql://localhost:3306/mybatisdb?characterEncodingUTF-8 # 数据库用户名 spring.datasource.usernameroot # 数据库密码 spring.datasource.passwordroot # ------------------------------------------------------------------------------ # MyBatis 配置 # ------------------------------------------------------------------------------ # Mapper XML文件位置 mybatis.mapper-locationsclasspath:com/cn/springbootmybatis/mapper/*.xml # 实体类包路径 mybatis.type-aliases-packagecom.cn.springbootmybatis.pojo # ------------------------------------------------------------------------------ # 日志配置 # ------------------------------------------------------------------------------ # 根日志级别INFO logging.level.rootinfo # Mapper 日志级别DEBUG logging.level.com.cn.springbootmybatis.mapperdebug图示如下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.idid;this.namename;this.gendergender;this.departmentdepartment;this.positionposition;this.salarysalary;this.hireDatehireDate;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.idid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicStringgetGender(){returngender;}publicvoidsetGender(Stringgender){this.gendergender;}publicStringgetDepartment(){returndepartment;}publicvoidsetDepartment(Stringdepartment){this.departmentdepartment;}publicStringgetPosition(){returnposition;}publicvoidsetPosition(Stringposition){this.positionposition;}publicIntegergetSalary(){returnsalary;}publicvoidsetSalary(Integersalary){this.salarysalary;}publicDategetHireDate(){returnhireDate;}publicvoidsetHireDate(DatehireDate){this.hireDatehireDate;}OverridepublicStringtoString(){returnEmployee{idid, namename\, gendergender\, departmentdepartment\, positionposition\, salarysalary, hireDatehireDate};}}图示如下创建接口文件在mapper中创建接口文件EmployeeMapper.java代码如下packagecom.cn.springbootmybatis.mapper;importcom.cn.springbootmybatis.pojo.Employee;publicinterfaceEmployeeMapper{// 根据id查询员工EmployeegetEmployeeById(intid);}图示如下创建映射文件在mapper中创建映射文件EmployeeMapper.xml代码如下?xml version1.0 encodingUTF-8 ?!DOCTYPEmapperPUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cn.springbootmybatis.mapper.EmployeeMapperselectidgetEmployeeByIdresultTypecom.cn.springbootmybatis.pojo.Employeeselect * 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(){EmployeeemployeeemployeeMapper.getEmployeeById(1);System.out.println(employee);}}图示如下测试结果如下至此实现了SpringBoot与MyBatis的整合。