• 快速了解SpringBoot(SpringBoot集成Mybatis)


    前言:

    SpringBoot是基于Spring的一站式解决方案,敏捷式开发,开箱即用。它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。

    用来简化 spring 应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties yml 文件)创建独立的 spring 引用程序 main 方法运行 嵌入的 Tomcat 无需部署 war 文件

    为什么springboot会在市面上流行呢,也就是说为什么我们要用springboot呢,让我们一起来看看Springboot的优点就明白了。

    SpringBoot的优点:

    一、独立运行
    Spring Boot 而且内嵌了各种 servlet 容器, Tomcat Jetty 等,现在不再需要打成 war 包部署到容器中,
    Spring Boot 只要打成一个可执行的 jar 包就能独立运行,所有的依赖包都在一个 jar 包内。
    二、简化配置
    spring-boot-starter-web 启动器自动依赖其他组件,简少了 maven 的配置。
    三、自动配置
    Spring Boot 能根据当前类路径下的类、 jar 包来自动配置 bean ,如添加一个 spring-boot-starter-web
    动器就能拥有 web 的功能,无需其他配置。
    四、无代码生成和 XML 配置
    Spring
    Boot 配置过程中无代码生成,也无需 XML 配置文件就能完成所有配置工作,这一切都是借助
    条件注解完成的,这也是 Spring4.x 的核心功能之一。
    五、应用监控
    Spring Boot 提供一系列端点可以监控服务及应用,做健康检测。

    SpringBoot注解

    这一点特别重要,是使用Springboot所需要了解的一些底层知识,Springboot只是建立在spring的一层皮而已,等我整理完之后放上来

    SpringBoot整合Mybatis

    application.yml:

    1. mybatis:
    2.     mapper-locations: classpath:mappers/**/*.xml
    3.     type-aliases-package: com.ycx.springbootmybatis.mybatis.model
    4. server:
    5.     port: 8080
    6. spring:
    7.     application:
    8.         name: springbootmybatis
    9.     datasource:
    10.         driver-class-name: com.mysql.jdbc.Driver
    11.         name: defaultDataSource
    12.         password: 1234
    13.         url: jdbc:mysql://localhost:3306/yjy?useUnicode=true&characterEncoding=UTF-8
    14. username: root

    jdbc.properties:

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


    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
    7. location="E:\\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>
    8. <context id="infoGuardian">
    9. <commentGenerator>
    10. <property name="suppressAllComments" value="true"/>
    11. <property name="suppressDate" value="true"/>
    12. commentGenerator>
    13. <jdbcConnection driverClass="${jdbc.driver}"
    14. connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    15. <javaTypeResolver>
    16. <property name="forceBigDecimals" value="false"/>
    17. javaTypeResolver>
    18. <javaModelGenerator targetPackage="com.ycx.springbootmybatis.model"
    19. targetProject="src/main/java">
    20. <property name="enableSubPackages" value="false"/>
    21. <property name="constructorBased" value="true"/>
    22. <property name="trimStrings" value="false"/>
    23. <property name="immutable" value="false"/>
    24. javaModelGenerator>
    25. <sqlMapGenerator targetPackage="com.ycx.springbootmybatis.mapper"
    26. targetProject="src/main/resources/mappers">
    27. <property name="enableSubPackages" value="false"/>
    28. sqlMapGenerator>
    29. <javaClientGenerator targetPackage="com.ycx.springbootmybatis.mapper"
    30. targetProject="src/main/java" type="XMLMAPPER">
    31. <property name="enableSubPackages" value="false"/>
    32. javaClientGenerator>
    33. <table schema="" tableName="t_mvc_book" domainObjectName="Book"
    34. enableCountByExample="false" enableDeleteByExample="false"
    35. enableSelectByExample="false" enableUpdateByExample="false">
    36. table>
    37. context>
    38. generatorConfiguration>

    添加pom依赖:

    1. <plugin>
    2.                 <groupId>org.mybatis.generator</groupId>
    3.                 <artifactId>mybatis-generator-maven-plugin</artifactId>
    4.                 <version>1.3.2</version>
    5.                 <dependencies>
    6.                     <!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 -->
    7.                     <dependency>
    8.                         <groupId>mysql</groupId>
    9.                         <artifactId>mysql-connector-java</artifactId>
    10.                         <version>5.1.44</version>
    11.                     </dependency>
    12.                 </dependencies>
    13.                 <configuration>
    14.                     <overwrite>true</overwrite>
    15.                 </configuration>
    16.  </plugin>

    完整的pom依赖

    1. <?xml version="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.0</modelVersion>
    5. <groupId>com.ycx</groupId>
    6. <artifactId>springbootmybatis</artifactId>
    7. <version>0.0.1-SNAPSHOT</version>
    8. <name>springbootmybatis</name>
    9. <description>Demo project for Spring Boot</description>
    10. <properties>
    11. <java.version>1.8</java.version>
    12. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    13. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    14. <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    15. </properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.boot</groupId>
    19. <artifactId>spring-boot-starter-jdbc</artifactId>
    20. </dependency>
    21. <dependency>
    22. <groupId>org.springframework.boot</groupId>
    23. <artifactId>spring-boot-starter-web</artifactId>
    24. </dependency>
    25. <dependency>
    26. <groupId>org.mybatis.spring.boot</groupId>
    27. <artifactId>mybatis-spring-boot-starter</artifactId>
    28. <version>2.1.4</version>
    29. </dependency>
    30. <dependency>
    31. <groupId>mysql</groupId>
    32. <artifactId>mysql-connector-java</artifactId>
    33. <version>5.1.44</version>
    34. </dependency>
    35. <dependency>
    36. <groupId>org.projectlombok</groupId>
    37. <artifactId>lombok</artifactId>
    38. <optional>true</optional>
    39. </dependency>
    40. <dependency>
    41. <groupId>org.springframework.boot</groupId>
    42. <artifactId>spring-boot-starter-test</artifactId>
    43. <scope>test</scope>
    44. <exclusions>
    45. <exclusion>
    46. <groupId>org.junit.vintage</groupId>
    47. <artifactId>junit-vintage-engine</artifactId>
    48. </exclusion>
    49. </exclusions>
    50. </dependency>
    51. </dependencies>
    52. <dependencyManagement>
    53. <dependencies>
    54. <dependency>
    55. <groupId>org.springframework.boot</groupId>
    56. <artifactId>spring-boot-dependencies</artifactId>
    57. <version>${spring-boot.version}</version>
    58. <type>pom</type>
    59. <scope>import</scope>
    60. </dependency>
    61. </dependencies>
    62. </dependencyManagement>
    63. <build>
    64. <plugins>
    65. <plugin>
    66. <groupId>org.mybatis.generator</groupId>
    67. <artifactId>mybatis-generator-maven-plugin</artifactId>
    68. <version>1.3.2</version>
    69. <dependencies>
    70. <!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 -->
    71. <dependency>
    72. <groupId>mysql</groupId>
    73. <artifactId>mysql-connector-java</artifactId>
    74. <version>5.1.44</version>
    75. </dependency>
    76. </dependencies>
    77. <configuration>
    78. <overwrite>true</overwrite>
    79. </configuration>
    80. </plugin>
    81. <plugin>
    82. <groupId>org.apache.maven.plugins</groupId>
    83. <artifactId>maven-compiler-plugin</artifactId>
    84. <version>3.8.1</version>
    85. <configuration>
    86. <source>1.8</source>
    87. <target>1.8</target>
    88. <encoding>UTF-8</encoding>
    89. </configuration>
    90. </plugin>
    91. <plugin>
    92. <groupId>org.springframework.boot</groupId>
    93. <artifactId>spring-boot-maven-plugin</artifactId>
    94. <version>2.3.7.RELEASE</version>
    95. <configuration>
    96. <mainClass>com.ycx.springbootmybatis.SpringbootmybatisApplication</mainClass>
    97. </configuration>
    98. <executions>
    99. <execution>
    100. <id>repackage</id>
    101. <goals>
    102. <goal>repackage</goal>
    103. </goals>
    104. </execution>
    105. </executions>
    106. </plugin>
    107. </plugins>
    108. </build>
    109. </project>

     

    其中注意改变三个地方:

    1、指定sql映射文件生成的位置

    1. <sqlMapGenerator targetPackage="com.ycx.springbootmybatis.mapper"
    2. targetProject="src/main/resources/mappers">
    3. <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
    4. <property name="enableSubPackages" value="false"/>
    5. </sqlMapGenerator>

    2、全局配置

    application.yml:

    1. mybatis:
    2. mapper-locations: classpath:mappers/**/*.xml
    3. type-aliases-package: com.ycx.springbootmybatis.model

    3、开启包扫描功能
     

    1. package com.ycx.springbootmybatis;
    2.  
    3. import org.mybatis.spring.annotation.MapperScan;
    4. import org.springframework.boot.SpringApplication;
    5. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    6. import org.springframework.boot.autoconfigure.SpringBootApplication;
    7. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
    8. import org.springframework.transaction.annotation.EnableTransactionManagement;
    9.  
    10. //完成对mapper接口的扫描
    11. @MapperScan("com.ycx.springbootmybatis.mapper")
    12. //开启事务管理
    13. @EnableTransactionManagement
    14. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
    15. public class SpringbootmybatisApplication {
    16.  
    17.     public static void main(String[] args) {
    18.         SpringApplication.run(SpringbootmybatisApplication.class, args);
    19.     }
    20. }

    mybatisplus是mybatis的加强版,只做增强不做改变。能够帮助我们大大的简化开发,减少xml配置,详细可拜读官网MyBatis-Plus

    把mybatis改成mybatisplus即可 

     这里springboot整合mybatis和mybatisplus都是一样的,存在版本不兼容问题,需要我们做一些配置

    mysql版本过高:修改成这样

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

     默认有一个cj把cj去掉

    修改mapper的扫描路径---全局配置

     classpath就是resource,把mappers文件夹建立在resource下

    启动类配置

    1. package com.zjy.spirgbootmybatisplus;
    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.zjy.springbootmybatisplus.mapper")
    7. @EnableTransactionManagement
    8. @SpringBootApplication
    9. public class SpirgbootmybatisplusApplication {
    10. public static void main(String[] args) {
    11. SpringApplication.run(SpirgbootmybatisplusApplication.class, args);
    12. }
    13. }

    Mybatisplus核心功能代码生成器

     所需依赖

    1. <dependency>
    2. <groupId>com.baomidou</groupId>
    3. <artifactId>mybatis-plus-boot-starter</artifactId>
    4. <version>3.4.2</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>com.baomidou</groupId>
    8. <artifactId>mybatis-plus-generator</artifactId>
    9. <version>3.4.1</version>
    10. </dependency>
    11. <dependency>
    12. <groupId>org.freemarker</groupId>
    13. <artifactId>freemarker</artifactId>
    14. <version>2.3.31</version>
    15. </dependency>

    基于官网代码改进的一套更方便使用的代码生成器

    1. package com.zjy.spirgbootmybatisplus.mp;
    2. /**
    3. * @author zjy
    4. * @site Bi8boYin
    5. * @company xxx公司
    6. * @create  2022-10-31 18:04
    7. */
    8. import com.baomidou.mybatisplus.annotation.DbType;
    9. import com.baomidou.mybatisplus.annotation.IdType;
    10. import com.baomidou.mybatisplus.core.config.GlobalConfig;
    11. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    12. import com.baomidou.mybatisplus.core.toolkit.StringPool;
    13. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    14. import com.baomidou.mybatisplus.generator.AutoGenerator;
    15. import com.baomidou.mybatisplus.generator.InjectionConfig;
    16. import com.baomidou.mybatisplus.generator.config.*;
    17. import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    18. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    19. import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    20. import java.util.ArrayList;
    21. import java.util.List;
    22. import java.util.Scanner;
    23. /**
    24. * mybatis-plus代码生成
    25. */
    26. public class MPGenerator {
    27. /**
    28. *

    29. * 读取控制台内容
    30. *

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

    运行代码生成器

     注意:这里需要手动建立模块

     生成成功

    接下来就以book表为例写一份基础版的增删改查

    注意:mp和maybatis最大的不同在于,mp的基础增删改查都被封装起来了,直接在web层调用即可,而mybatis需要编写sql语句。 

    所以接下来我们只用编写web层即可。

    1. package com.zjy.springbootmybatisplus.book.controller;
    2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    3. import com.zjy.springbootmybatisplus.book.model.MvcBook;
    4. import com.zjy.springbootmybatisplus.book.service.MvcBookService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.web.bind.annotation.GetMapping;
    7. import org.springframework.web.bind.annotation.PutMapping;
    8. import org.springframework.web.bind.annotation.RequestMapping;
    9. import org.springframework.web.bind.annotation.RestController;
    10. import java.util.HashMap;
    11. import java.util.List;
    12. import java.util.Map;
    13. /**
    14. *

    15. * 前端控制器
    16. *

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

     

    同时mp也同样支持多表联查的sql语句编写,不过这个时候需要在各个层都添加我们新添加的这个多表联查的方法

    xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. <mapper namespace="com.zjy.springbootmybatisplus.book.mapper.MvcBookMapper">
    4. <!-- 通用查询映射结果 -->
    5. <resultMap id="BaseResultMap" type="com.zjy.springbootmybatisplus.book.model.MvcBook">
    6. <id column="bid" property="bid" />
    7. <result column="bname" property="bname" />
    8. <result column="price" property="price" />
    9. </resultMap>
    10. <!-- 通用查询结果列 -->
    11. <sql id="Base_Column_List">
    12. bid, bname, price
    13. </sql>
    14. <!--注意mybatisplus中的配置文件默认也是没有生成对应增删改查的SQL语句的,因为mp是顶层接口都封装好了,调用即可-->
    15. <select id="queryUserRole" parameterType="java.util.Map" resultType="java.util.Map">
    16. SELECT u.username,r.rolename FROM t_shiro_user u,t_shiro_user_role ur,t_shiro_role r
    17. where u.userid = ur.userid and ur.roleid = r.roleid
    18. <if test="username != null and username != ''">
    19. and u.username = #{username}
    20. </if>
    21. </select>
    22. </mapper>

     

     

    mapper

    1. package com.zjy.springbootmybatisplus.book.mapper;
    2. import com.zjy.springbootmybatisplus.book.model.MvcBook;
    3. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    4. import java.util.List;
    5. import java.util.Map;
    6. /**
    7. *

    8. * Mapper 接口
    9. *

    10. *
    11. * @author xiaozhu
    12. * @since 2022-11-01
    13. */
    14. public interface MvcBookMapper extends BaseMapper {
    15. List queryUserRole(Map map);
    16. }

     services

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

    8. * 服务类
    9. *

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

    servicesimpl

    1. package com.zjy.springbootmybatisplus.book.service.impl;
    2. import com.zjy.springbootmybatisplus.book.model.MvcBook;
    3. import com.zjy.springbootmybatisplus.book.mapper.MvcBookMapper;
    4. import com.zjy.springbootmybatisplus.book.service.MvcBookService;
    5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    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 xiaozhu
    16. * @since 2022-11-01
    17. */
    18. @Service
    19. public class MvcBookServiceImpl extends ServiceImpl, MvcBook> implements MvcBookService {
    20. @Autowired
    21. private MvcBookMapper bookMapper;
    22. @Override
    23. public List<Map> queryUserRole(Map map) {
    24. return bookMapper.queryUserRole(map);
    25. }
    26. }

    controller

    1. // 按条件查询
    2. @GetMapping("/listByCondition")
    3. public List<MvcBook> listByCondition(MvcBook book) {
    4. // 如果使用的是Mybatis,那么我们需要写SQL语句,而MP不需要
    5. QueryWrapper qw = new QueryWrapper();
    6. qw.like("bname", book.getBname());
    7. return bookService.list();
    8. }

     

     

     

  • 相关阅读:
    C++信息学奥赛1191:流感传染
    【Linux内核代码分析1】Linux时间子系统及HRTIMER实现
    读《反无效努力工作法》
    k8s存储卷 PV与PVC 理论学习
    Linux ❀ ps进程操作与僵尸进程解决方法
    Windows 权限维持手法
    Java项目:JSP游戏购买网站
    P1223 排队接水 【贪心】
    GLTF编辑器如何合并相同材质的Mesh
    Continua CI持续集成,Continua CI将在整个网络中分发您的构建
  • 原文地址:https://blog.csdn.net/m0_67477525/article/details/127624166