• 程序员必看内容连续集之 SpringBoot03 SSM整合SpringBoot


    目录

    一、整合Mybatis

    二、整合Mybatisplus

    三、Mybatisplus中使用Mybatis实现多表连查的功能


    一、整合Mybatis

    我们使用SSM框架如何整合SpringBoot?接下来进行详细操作上车!

    ①创建一个SpringBoot项目并勾选五个配置

     ②修改pom依赖,降低MySQl版本

    低版本MySQL:

    1. <dependency>
    2. <groupId>mysqlgroupId>
    3. <artifactId>mysql-connector-javaartifactId>
    4. <version>5.1.44version>
    5. dependency>

    ③修改application.yml

    application.yml:

    1. mybatis:
    2. mapper-locations: classpath:mappers/*xml
    3. type-aliases-package: com.zq.springboot03.mybatis.entity
    4. server:
    5. port: 8080
    6. spring:
    7. application:
    8. name: springboot03
    9. datasource:
    10. # driver-class-name: com.mysql.cj.jdbc.Driver
    11. driver-class-name: com.mysql.jdbc.Driver
    12. name: defaultDataSource
    13. password: 123456
    14. url: jdbc:mysql://localhost:3306/mybatis_ssm?serverTimezone=UTC
    15. username: root

    ④逆向生成配置(添加配置文件以及POM依赖,修改扫描)

    jdbc.properties:

    1. jdbc.driver=com.mysql.jdbc.Driver
    2. jdbc.url=jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8
    3. jdbc.username=root
    4. jdbc.password=123456

    generatorConfig.xml:

    1. "1.0" encoding="UTF-8" ?>
    2. generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
    3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    4. <generatorConfiguration>
    5. <properties resource="jdbc.properties"/>
    6. <classPathEntry location="D:\\mvn-repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>
    7. <context id="infoGuardian">
    8. <commentGenerator>
    9. <property name="suppressAllComments" value="true"/>
    10. <property name="suppressDate" value="true"/>
    11. commentGenerator>
    12. <jdbcConnection driverClass="${jdbc.driver}"
    13. connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    14. <javaTypeResolver>
    15. <property name="forceBigDecimals" value="false"/>
    16. javaTypeResolver>
    17. <javaModelGenerator targetPackage="com.zq.springboot03.model"
    18. targetProject="src/main/java">
    19. <property name="enableSubPackages" value="false"/>
    20. <property name="constructorBased" value="true"/>
    21. <property name="trimStrings" value="false"/>
    22. <property name="immutable" value="false"/>
    23. javaModelGenerator>
    24. <sqlMapGenerator targetPackage="com.zq.springboot03.mapper"
    25. targetProject="src/main/resources/mappers">
    26. <property name="enableSubPackages" value="false"/>
    27. sqlMapGenerator>
    28. <javaClientGenerator targetPackage="com.zq.springboot03.mapper"
    29. targetProject="src/main/java" type="XMLMAPPER">
    30. <property name="enableSubPackages" value="false"/>
    31. javaClientGenerator>
    32. <table schema="" tableName="t_mvc_book" domainObjectName="Book"
    33. enableCountByExample="false" enableDeleteByExample="false"
    34. enableSelectByExample="false" enableUpdateByExample="false">
    35. table>
    36. context>
    37. generatorConfiguration>

    添加POM依赖:

    1. <plugin>
    2. <groupId>org.mybatis.generatorgroupId>
    3. <artifactId>mybatis-generator-maven-pluginartifactId>
    4. <version>1.3.2version>
    5. <dependencies>
    6. <dependency>
    7. <groupId>mysqlgroupId>
    8. <artifactId>mysql-connector-javaartifactId>
    9. <version>5.1.44version>
    10. dependency>
    11. dependencies>
    12. <configuration>
    13. <overwrite>trueoverwrite>
    14. configuration>
    15. plugin>

    因为我们使用了SpringBoot所以我们逆向生成的XML扫描位置不同:

    ⑤修改maven命令与配置

     

     ⑥yml与xml文件的返回类型相对应

    application.yml:

    1. mybatis:
    2. # mapper-locations: classpath:mappers/*xml
    3. mapper-locations: classpath:mappers/**/*xml
    4. # type-aliases-package: com.zq.springboot03.mybatis.entity
    5. type-aliases-package: com.zq.springboot03.model
    6. server:
    7. port: 8080
    8. spring:
    9. application:
    10. name: springboot03
    11. datasource:
    12. # driver-class-name: com.mysql.cj.jdbc.Driver
    13. driver-class-name: com.mysql.jdbc.Driver
    14. name: defaultDataSource
    15. password: 123456
    16. url: jdbc:mysql://localhost:3306/mybatis_ssm?serverTimezone=UTC
    17. username: root

    整合完成我们写一个controller 进行验证

    BookController :

    1. package com.zq.springboot03.controller;
    2. import com.zq.springboot03.mapper.BookMapper;
    3. import com.zq.springboot03.model.Book;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.*;
    6. /**
    7. * @author张强
    8. * @site www.zq.com
    9. */
    10. @RestController
    11. @RequestMapping("/mybatis")
    12. public class BookController {
    13. @Autowired
    14. public BookMapper bookMapper;
    15. //查询
    16. @GetMapping("/get")
    17. public Book list(Integer bid){
    18. return bookMapper.selectByPrimaryKey(bid);
    19. }
    20. //删除
    21. @DeleteMapping("/delete")
    22. public int delete(Integer bid){
    23. return bookMapper.deleteByPrimaryKey(bid);
    24. }
    25. //新增
    26. @PutMapping("/add")
    27. public int add(Book book){
    28. return bookMapper.insertSelective(book);
    29. }
    30. }

    我们写完响应类会需开启扫描:

    1. package com.zq.springboot03;
    2. import org.mybatis.spring.annotation.MapperScan;
    3. import org.springframework.boot.SpringApplication;
    4. import org.springframework.boot.autoconfigure.SpringBootApplication;
    5. import org.springframework.transaction.annotation.EnableTransactionManagement;
    6. @MapperScan("com.zq.Springboot03.mapper")
    7. @EnableTransactionManagement
    8. @SpringBootApplication
    9. public class Springboot03Application {
    10. public static void main(String[] args) {
    11. SpringApplication.run(Springboot03Application.class, args);
    12. }
    13. }

     使用测试工具测试的结果:整合成功! 

    二、整合Mybatisplus

    Mybatisplus简介:

    ①官网地址:https://baomidou.com/

    MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

     ③特性:有些非常实用!!!

    • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
    • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
    • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
    • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
    • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
    • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
    • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
    • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
    • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
    • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
    • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
    • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

     我们继续重点使用SpringBoot与MybatisPlus进行整合

    ①创建SpringBoot项目勾选不同组件

     ②添加逆向生成pom配置文件并降低MySQL版本

     pom.xml:

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>com.zqgroupId>
    6. <artifactId>springbootmybatisplusartifactId>
    7. <version>0.0.1-SNAPSHOTversion>
    8. <name>springbootmybatisplusname>
    9. <description>Demo project for Spring Bootdescription>
    10. <properties>
    11. <java.version>1.8java.version>
    12. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    13. <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    14. <spring-boot.version>2.3.7.RELEASEspring-boot.version>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.bootgroupId>
    19. <artifactId>spring-boot-starter-jdbcartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-starter-webartifactId>
    24. dependency>
    25. <dependency>
    26. <groupId>com.baomidougroupId>
    27. <artifactId>mybatis-plus-boot-starterartifactId>
    28. <version>3.4.2version>
    29. dependency>
    30. <dependency>
    31. <groupId>com.baomidougroupId>
    32. <artifactId>mybatis-plus-boot-starterartifactId>
    33. <version>3.4.2version>
    34. dependency>
    35. <dependency>
    36. <groupId>com.baomidougroupId>
    37. <artifactId>mybatis-plus-generatorartifactId>
    38. <version>3.4.1version>
    39. dependency>
    40. <dependency>
    41. <groupId>org.freemarkergroupId>
    42. <artifactId>freemarkerartifactId>
    43. <version>2.3.31version>
    44. dependency>
    45. <dependency>
    46. <groupId>mysqlgroupId>
    47. <artifactId>mysql-connector-javaartifactId>
    48. <version>5.1.44version>
    49. dependency>
    50. <dependency>
    51. <groupId>org.projectlombokgroupId>
    52. <artifactId>lombokartifactId>
    53. <optional>trueoptional>
    54. dependency>
    55. <dependency>
    56. <groupId>org.springframework.bootgroupId>
    57. <artifactId>spring-boot-starter-testartifactId>
    58. <scope>testscope>
    59. <exclusions>
    60. <exclusion>
    61. <groupId>org.junit.vintagegroupId>
    62. <artifactId>junit-vintage-engineartifactId>
    63. exclusion>
    64. exclusions>
    65. dependency>
    66. dependencies>
    67. <dependencyManagement>
    68. <dependencies>
    69. <dependency>
    70. <groupId>org.springframework.bootgroupId>
    71. <artifactId>spring-boot-dependenciesartifactId>
    72. <version>${spring-boot.version}version>
    73. <type>pomtype>
    74. <scope>importscope>
    75. dependency>
    76. dependencies>
    77. dependencyManagement>
    78. <build>
    79. <plugins>
    80. <plugin>
    81. <groupId>org.apache.maven.pluginsgroupId>
    82. <artifactId>maven-compiler-pluginartifactId>
    83. <version>3.8.1version>
    84. <configuration>
    85. <source>1.8source>
    86. <target>1.8target>
    87. <encoding>UTF-8encoding>
    88. configuration>
    89. plugin>
    90. <plugin>
    91. <groupId>org.springframework.bootgroupId>
    92. <artifactId>spring-boot-maven-pluginartifactId>
    93. <version>2.3.7.RELEASEversion>
    94. <configuration>
    95. <mainClass>com.zq.springbootmybatisplus.SpringbootmybatisplusApplicationmainClass>
    96. configuration>
    97. <executions>
    98. <execution>
    99. <id>repackageid>
    100. <goals>
    101. <goal>repackagegoal>
    102. goals>
    103. execution>
    104. executions>
    105. plugin>
    106. plugins>
    107. build>
    108. project>

    ③修改application.yml文件

    1. server:
    2. port: 8080
    3. spring:
    4. application:
    5. name: springbootmp
    6. datasource:
    7. driver-class-name: com.mysql.jdbc.Driver
    8. password: 123456
    9. url: jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8
    10. username: root
    11. logging:
    12. level:
    13. com.zking.demo: debug
    14. mybatis-plus:
    15. mapper-locations: classpath:mappers/**/*.xml
    16. type-aliases-package: com.zq.springbootmybatisplus.book.model

    ④新建一个mp的包 放入代码生成的类(在官网的代码生成中修改得出来的)

    修改这个文件

    MPGenerator :

    1. package com.zq.springbootmybatisplus.mp;
    2. import com.baomidou.mybatisplus.annotation.DbType;
    3. import com.baomidou.mybatisplus.annotation.IdType;
    4. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    5. import com.baomidou.mybatisplus.core.toolkit.StringPool;
    6. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    7. import com.baomidou.mybatisplus.generator.AutoGenerator;
    8. import com.baomidou.mybatisplus.generator.InjectionConfig;
    9. import com.baomidou.mybatisplus.generator.config.*;
    10. import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    11. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    12. import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    13. import java.util.ArrayList;
    14. import java.util.List;
    15. import java.util.Scanner;
    16. /**
    17. * mybatis-plus代码生成
    18. */
    19. public class MPGenerator {
    20. /**
    21. *

    22. * 读取控制台内容
    23. *

    24. */
    25. public static String scanner(String tip) {
    26. Scanner scanner = new Scanner(System.in);
    27. StringBuilder help = new StringBuilder();
    28. help.append("请输入" + tip);
    29. System.out.println(help.toString());
    30. if (scanner.hasNext()) {
    31. String ipt = scanner.next();
    32. if (StringUtils.isNotBlank(ipt)) {
    33. if ("quit".equals(ipt)) return "";
    34. return ipt;
    35. }
    36. }
    37. throw new MybatisPlusException("请输入正确的" + tip + "!");
    38. }
    39. public static void main(String[] args) {
    40. // 代码生成器
    41. AutoGenerator mpg = new AutoGenerator();
    42. // 1.全局配置
    43. GlobalConfig gc = new GlobalConfig();
    44. String projectPath = System.getProperty("user.dir") + "/springbootmybatisplus";
    45. System.out.println(projectPath);
    46. gc.setOutputDir(projectPath + "/src/main/java");
    47. gc.setOpen(false);
    48. gc.setBaseResultMap(true);//生成BaseResultMap
    49. gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
    50. gc.setEnableCache(false);// XML 二级缓存
    51. gc.setBaseResultMap(true);// XML ResultMap
    52. gc.setBaseColumnList(true);// XML columList
    53. //gc.setSwagger2(true); //实体属性 Swagger2 注解
    54. gc.setAuthor("lky");
    55. // 自定义文件命名,注意 %s 会自动填充表实体属性!
    56. gc.setMapperName("%sMapper");
    57. gc.setXmlName("%sMapper");
    58. gc.setServiceName("%sService");
    59. gc.setServiceImplName("%sServiceImpl");
    60. gc.setControllerName("%sController");
    61. gc.setIdType(IdType.AUTO);
    62. mpg.setGlobalConfig(gc);
    63. // 2.数据源配置
    64. DataSourceConfig dsc = new DataSourceConfig();
    65. dsc.setDbType(DbType.MYSQL);
    66. dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8");
    67. dsc.setDriverName("com.mysql.jdbc.Driver");
    68. dsc.setUsername("root");
    69. dsc.setPassword("123456");
    70. mpg.setDataSource(dsc);
    71. // 3.包配置
    72. PackageConfig pc = new PackageConfig();
    73. String moduleName = scanner("模块名(quit退出,表示没有模块名)");
    74. if (StringUtils.isNotBlank(moduleName)) {
    75. pc.setModuleName(moduleName);
    76. }
    77. //配置父包
    78. pc.setParent("com.zq.springbootmybatisplus")
    79. .setMapper("mapper")
    80. .setService("service")
    81. .setController("controller")
    82. .setEntity("model");
    83. mpg.setPackageInfo(pc);
    84. // 4.自定义配置
    85. InjectionConfig cfg = new InjectionConfig() {
    86. @Override
    87. public void initMap() {
    88. // to do nothing
    89. }
    90. };
    91. // 如果模板引擎是 freemarker
    92. String templatePath = "/templates/mapper.xml.ftl";
    93. // 自定义输出配置
    94. List focList = new ArrayList<>();
    95. // 自定义配置会被优先输出
    96. focList.add(new FileOutConfig(templatePath) {
    97. @Override
    98. public String outputFile(TableInfo tableInfo) {
    99. // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
    100. if (StringUtils.isNotBlank(pc.getModuleName())) {
    101. return projectPath + "/src/main/resources/mappers/" + pc.getModuleName() + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
    102. } else {
    103. return projectPath + "/src/main/resources/mappers/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
    104. }
    105. }
    106. });
    107. cfg.setFileOutConfigList(focList);
    108. mpg.setCfg(cfg);
    109. // 配置模板
    110. TemplateConfig templateConfig = new TemplateConfig();
    111. templateConfig.setXml(null);
    112. mpg.setTemplate(templateConfig);
    113. // 5.策略配置
    114. StrategyConfig strategy = new StrategyConfig();
    115. // 表名生成策略(下划线转驼峰命名)
    116. strategy.setNaming(NamingStrategy.underline_to_camel);
    117. // 列名生成策略(下划线转驼峰命名)
    118. strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    119. // 是否启动Lombok配置
    120. strategy.setEntityLombokModel(true);
    121. // 是否启动REST风格配置
    122. strategy.setRestControllerStyle(true);
    123. // 自定义实体父类strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
    124. // 自定义service父接口strategy.setSuperServiceClass("com.baomidou.mybatisplus.extension.service.IService");
    125. // 自定义service实现类strategy.setSuperServiceImplClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl");
    126. // 自定义mapper接口strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper");
    127. strategy.setSuperEntityColumns("id");
    128. // 写于父类中的公共字段plus
    129. strategy.setSuperEntityColumns("id");
    130. strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
    131. strategy.setControllerMappingHyphenStyle(true);
    132. //表名前缀(可变参数):“t_”或”“t_模块名”,例如:t_user或t_sys_user
    133. strategy.setTablePrefix("t_", "t_sys_");
    134. //strategy.setTablePrefix(scanner("请输入表前缀"));
    135. mpg.setStrategy(strategy);
    136. mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    137. // 执行
    138. mpg.execute();
    139. }
    140. }

    ⑤创建mappers存放xml文件

    ⑥然后运行MPGenerator类的main的方法

    其中里面是没有sql方法和对于的接口类方法等,因为这些基本的增删改查已经别一个接口封装好了,自动继承了,所以基本的增删改查都可以用

    ⑦测试:

    MvcBookController:

    1. package com.zq.springbootmybatisplus.book.controller;
    2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    3. import com.zq.springbootmybatisplus.book.model.MvcBook;
    4. import com.zq.springbootmybatisplus.book.service.MvcBookService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.web.bind.annotation.*;
    7. import java.util.List;
    8. /**
    9. *

    10. * 前端控制器
    11. *

    12. *
    13. * @author lky
    14. * @since 2022-11-04
    15. */
    16. @RestController
    17. @RequestMapping("/book/mvc-book")
    18. public class MvcBookController {
    19. @Autowired
    20. private MvcBookService bookService;
    21. // 查询所有
    22. @GetMapping("/list")
    23. public List list(){
    24. return bookService.list();
    25. }
    26. // 按条件查询
    27. @GetMapping("/ListByCondition")
    28. public List ListByCondition(MvcBook book){
    29. //如果使用的市mybatis 那么需要写SQL语句
    30. QueryWrapper w = new QueryWrapper();
    31. w.like("bname",book.getBname());
    32. return bookService.list(w);
    33. }
    34. // 查询单个
    35. @GetMapping("/load")
    36. public MvcBook load(MvcBook book){
    37. //QueryWrapper w = new QueryWrapper();
    38. //w.like("bid",book.getBid());
    39. //return bookService.getOne(w);
    40. return bookService.getById(book.getBid());
    41. }
    42. // 增加
    43. @PutMapping("/add")
    44. public boolean add(MvcBook book){
    45. boolean save = bookService.save(book);
    46. return save;
    47. }
    48. // 修改
    49. @PostMapping("/update")
    50. public boolean update(MvcBook book){
    51. boolean save = bookService.saveOrUpdate(book);
    52. return save;
    53. }
    54. // 删除
    55. @DeleteMapping("/delete")
    56. public boolean delete(MvcBook book){
    57. boolean save = bookService.removeById(book.getBid());
    58. return save;
    59. }
    60. }

    SpringbootmybatisplusApplication:(打开扫描)

    1. package com.zq.springbootmybatisplus;
    2. import org.mybatis.spring.annotation.MapperScan;
    3. import org.springframework.boot.SpringApplication;
    4. import org.springframework.boot.autoconfigure.SpringBootApplication;
    5. import org.springframework.transaction.annotation.EnableTransactionManagement;
    6. @MapperScan("com.zq.springbootmybatisplus.book.mapper")
    7. @EnableTransactionManagement
    8. @SpringBootApplication
    9. public class SpringbootmybatisplusApplication {
    10. public static void main(String[] args) {
    11. SpringApplication.run(SpringbootmybatisplusApplication.class, args);
    12. }
    13. }

    使用测试工具测试结果:(查询)

     

    三、Mybatisplus中使用Mybatis实现多表连查的功能

    MvcBookMapper.xml

    1. <select id="queryUserRole" parameterType="java.util.Map" resultType="java.util.Map">
    2. SELECT u.username,r.rolename FROM t_shiro_user u,t_shiro_user_role ur,t_shiro_role r
    3. where u.userid = ur.userid and ur.roleid = r.roleid
    4. <if test="username != null and username != ''">
    5. and u.username = #{username}
    6. if>
    7. select>

     MvcBookService 

    1. package com.zq.springbootmybatisplus.book.service;
    2. import com.baomidou.mybatisplus.extension.service.IService;
    3. import com.zq.springbootmybatisplus.book.model.MvcBook;
    4. import java.util.List;
    5. import java.util.Map;
    6. /**
    7. *

    8. * 服务类
    9. *

    10. *
    11. * @author zq
    12. * @since 2022-11-01
    13. */
    14. public interface MvcBookService extends IService {
    15. //多表联查
    16. List queryUserRole(Map map);
    17. }

     MvcBookServiceImpl 

    1. package com.zq.springbootmybatisplus.book.service.impl;
    2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    3. import com.zq.springbootmybatisplus.book.mapper.MvcBookMapper;
    4. import com.zq.springbootmybatisplus.book.model.MvcBook;
    5. import com.zq.springbootmybatisplus.book.service.MvcBookService;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.stereotype.Service;
    8. import java.util.List;
    9. import java.util.Map;
    10. /**
    11. *

    12. * 服务实现类
    13. *

    14. *
    15. * @author zq
    16. * @since 2022-11-01
    17. */
    18. @Service
    19. public class MvcBookServiceImpl extends ServiceImpl implements MvcBookService {
    20. @Autowired
    21. private MvcBookMapper bookMapper;
    22. public List queryUserRole(Map map){
    23. return bookMapper.queryUserRole(map);
    24. }
    25. }

     MvcBookMapper 

    1. package com.zq.springbootmybatisplus.book.mapper;
    2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    3. import com.zq.springbootmybatisplus.book.model.MvcBook;
    4. import org.springframework.stereotype.Repository;
    5. import java.util.List;
    6. import java.util.Map;
    7. /**
    8. *

    9. * Mapper 接口
    10. *

    11. *
    12. * @author zq
    13. * @since 2022-11-01
    14. */
    15. @Repository
    16. public interface MvcBookMapper extends BaseMapper {
    17. //多表联查
    18. List queryUserRole(Map map);
    19. }

    MvcBookController加入一个方法

    1. //多表联查 用户账户对应角色的功能 论证mybatisplus一样可以使用mybatis
    2. @GetMapping("/userRole")
    3. public List userRole(String uname){
    4. Map map = new HashMap();
    5. map.put("username",uname);
    6. List maps = mvcBookService.queryUserRole(map);
    7. return maps;
    8. }

    测试结果:

     

  • 相关阅读:
    软考 系统架构设计师系列知识点之特定领域软件体系结构DSSA(6)
    Zabbix登录绕过漏洞复现(CVE-2022-23131)
    VM+Ubuntu+Xshell+Xftp安装教程
    机器学习算法基础--聚类问题的评价指标
    nuitka 打包成exe文件怎么样打包可以不需要安装python环境运行
    Direct3D中的绘制
    ZZNUOJ_用C语言编写程序实现1342:支配值数目(附完整源码)
    【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter11-构建基础脚本
    剑指offer专项突击版第40天
    GeoServer+Postgis发布存储在Postgis中的栅格数据
  • 原文地址:https://blog.csdn.net/weixin_66110079/article/details/127681536