SpringBoot集成Mybatis-Plus

SpringBoot整合MybatisPlus(详细版) ​MybatisPlus是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它继承了 MyBatis 的所有特性,并且加入了强大的功能,例如自动填充、逻辑删除、乐观锁、性能分析等。 阅读详情

简介

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

因此,mybatis-plus包含mybatis的所有功能,因此无需再次引入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 操作智能分析阻断,也可自定义拦截规则,预防误操作

MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 搭配 Spring Boot 的使用。

安装

Maven Repository仓库官方最新依赖

Maven

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

Gradle

compile group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.5.1'

快速开始

官方文档推荐的快速集成文档,一共分为5步,分别为创建sql文件、添加pom依赖、配置jdbc连接、继承BaseMapper生成CRUD方法与测试使用。

1.创建一个User表

有一张 User 表,其表结构如下:

idnameageemail
1Jone18test1@baomidou.com
2Jack20test2@baomidou.com
3Tom28test3@baomidou.com
4Sandy21test4@baomidou.com
5Billie24test5@baomidou.com

创建对应的数据表 Schema 的表结构和表数据:

schema_user.sql

DROP TABLE IF EXISTS user;
CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

user_data.sql

DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2.添加Mybatis-Plus依赖

引入 Spring Boot Starter 父工程:

pom.xml

<parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.6.4</version>
      <relativePath/>
  </parent>

<dependencies>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter</artifactId>
   </dependency>
   <!-- mybatis-plus -->
   <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.5.1</version>
   </dependency>
   <!-- mysql连接器 -->
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <scope>runtime</scope>
   </dependency>
   <!-- spring自动配置依赖 -->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-configuration-processor</artifactId>
       <optional>true</optional>
   </dependency>
   <!-- lombok -->
   <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <optional>true</optional>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
       <scope>test</scope>
   </dependency>
</dependencies>

3.配置数据库

在 application.yml 配置文件中添加 H2 数据库的相关配置:

server:
  port: 8080
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot-in-action?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: 123456

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

@SpringBootApplication
@MapperScan("com.deepinsea.springbootmybatisplus.mapper")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

4.创建一个实体类

编写实体类 User.java(此处使用了 Lombok简化代码)

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

5.创建一个Mapper接口

编写 Mapper 类 UserMapper.java

public interface UserMapper extends BaseMapper<User> {

}

6.测试使用

添加测试类,进行功能测试:

@SpringBootTest
public class SampleTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        Assert.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }

}

UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper,所以不填写就是无任何条件

控制台输出:

User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)

小结

通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!

从以上步骤中,我们可以看到集成MyBatis-Plus非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。

插件使用

1.自动生成主键

实现原理:除了雪花id,其他自增和UUID算法都是在表ID本身设置了自增的情况下传递一个null值自动生成id,然后再使用mybatis-plus的id生成器生成的id替换数据库id(自增就不用替换了);而雪花算法,则是在内存中直接生成然后就设置为数据库id的值。

在使用自动生成主键功能前,先设置数据id主键为自增ID,否则会导致主键id插入null错误(主键设置了不允许null的情况下)。

两种id生成配置策略:1. 全局配置生成id类型;2. 局部表实体配置生成id类型。

全局id生成策略

mybatis-plus:
  global-config:
    db-config:
      #主键类型(auto:"自增id",assign_id:"全局唯一id(雪花算法,Long或者String类型)",assign_uuid:"全局唯一id(
      #       无中划线的uuid)",input:"自行设置id,默认null",none:"不设置主键id")
      id-type: assign_id

局部id生成策略

使用@TableId注解配置id生成类型

user.java

@EqualsAndHashCode(callSuper = false)  
  @Data  
  public class User extends Model<User> {  
   @TableId(type = IdType.AUTO)  
   private Long id;  
   @TableField(condition = SqlCondition.LIKE)  
   private String name;  
   @TableField(condition = "%s &gt; #{%s}")  
   private Integer age;  
   private String email;  
   private Long managerId;  
   private LocalDateTime createTime;  


同时配置了这两种策略时,局部生成id类型配置优先级大于全局id生成类型配置。

测试使用

UserController.java

    /**
     * @Description 自动生成主键id(雪花算法)
     */
    @PostMapping("/add")
    public void addUser(){
        User user = new User();
        user.setName("testIdType");
        userMapper.insert(user);
        System.out.println("主键id为:" + user.getId());
    }

注意的点

  • 局部字段的ID生成策略优先级高于全局的id生成策略
  • 使用雪花算法生成ID后,再次切换为主键自增的ID生成策略后会导致起始序列过大(没有重置起始序列值)
  • 另外如果原先指定了@TableId(type = IdType.AUTO),然后去除这部分代码,会发生Tuncate操作(即清空表并重置ID起始值)

2.分页插件使用

mybatis-plus分页插件旧版API为PaginationInterceptor,在3.5.1新版API为MybatisPlusInterceptor。

mybatis-plus的分页插件也是内置的,无需添加其他依赖。

旧版分页插件

MybatisPlusPageConfig.java

@Configuration
public class MybatisPlusPageConfig {

    /**
     * 旧版本配置(已过时)
     */
    /*@Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }*/

    /**
     * 新的分页插件(推荐)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

新版分页插件

MybatisPlusConfig.java

/**
 * Mybatis-plus配置类
 */
@EnableTransactionManagement
@Configuration
@MapperScan(basePackages = "com.deepinsea.springbootmybatisplus.mapper")
public class MybatisPlusConfig {

    /**
     * Mybatis-Plus 3.5.1新版分页插件API
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //乐观锁
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        //分页锁
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

测试使用

UserController.java

    /**
     * @Description 内置分页插件的使用
     */
    @GetMapping("/page")
    public Page<User> getByPage() {
        Page<User> users = userMapper.selectPage(new Page<>(1, 2), null);
        System.out.println(users.getRecords());
        return users;
    }

3.条件构造器使用

mybatis-plus中有查询条件构造器QueryWrapper,可以在对常见的CRUD条件进行一些常见的构造,真实API在AbstractWrapper类中(采用了工厂模式进行顶层API设计)。

可以封装sql对象,包括where条件,order by排序,select哪些字段等等 查询包装类,可以封装多数查询条件,泛型指定返回的实体类。

测试使用

SpringbootMybatisplusApplicationTests.java

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null); # 查询全表数据
        userList.forEach(System.out::println);
    }

UserController.java

    /**
     * @Description 条件构造器使用
     */
    @DeleteMapping("/delete")
    public void delUser(){
        // 1\. 根据ID删除
//        userMapper.deleteById(6);
//        userMapper.deleteBatchIds(Collections.singleton(7));
        // 2\. 根据map中的参数作为条件删除
//        Map<String, Object> map = new HashMap<>();
//        map.put("name", "testIdType");
//        map.put("id", 7);
//        userMapper.deleteByMap(map);
        // 3\. 条件构造器为参数的进行删除
        // ①普通条件构造器(注意不要添加<>,Entity转Object会报错)
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("id",6);
        userMapper.delete(wrapper);
        // ②lambda表达式条件构造器
//        LambdaQueryWrapper<User> lambdaQuery = Wrappers.lambdaQuery();
//        lambdaQuery.eq(User::getId, 7).or().eq(User::getName, "testIdType");
//        userMapper.delete(lambdaQuery);
    }

4.代码生成器使用

引入依赖

说明:freemarker是作为代码生成器的模板依赖,必须存在;而knife4j是兼容生成的代码带Swagger注释

pom.xml

        <!-- mybatis-plus代码生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!-- freemarker模板 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>
        <!-- knife4j依赖 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.7</version>
        </dependency>

mybatis-plus 3.x版本

SpringbootMybatisPlusApplication.java

        List<String> schemas = new ArrayList<>(); // 数据表列表
        schemas.add("user");
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/springboot-in-action?serverTimezone=Asia/Shanghai",
                        "root", "123456")
                //全局配置
                .globalConfig(builder -> {
                    builder.author("deepinsea")                                              // 设置作者
                            .enableSwagger()                                                // 开启 swagger 模式
                            .fileOverride()                                                 // 覆盖已生成文件
                            .disableOpenDir()                                               // 禁止打开输出目录
                            .dateType(DateType.TIME_PACK)                                   // 时间策略
                            .commentDate("yyyy-MM-dd")                                      // 注释日期
                            .outputDir(System.getProperty("user.dir")
                                    + "/src/main/java");                           // 指定输出目录
                })
                //包配置
                .packageConfig(builder -> {
                    builder.parent("generator")                                    // 设置父包名(也可以生成目录)
                            //.moduleName("system")                                     // 设置父包模块名
//                            .entity("model")
//                            .service("service")
//                            .controller("controller")
//                            .mapper("mapper")                                           // Mapper 包名
//                            .xml("mapper")                                              // Mapper XML 包名
                            .pathInfo(Collections.singletonMap(
                                    OutputFile.xml,
                                    System.getProperty("user.dir")
                                            + "/src/main/resources/mapper"));           // 设置mapperXml生成路径

                })
                //策略配置
                .strategyConfig(builder -> {
                    builder.addInclude(schemas)                                          // 设置需要生成的表名
                            .addTablePrefix("")                                       // 表前缀过滤
                            .entityBuilder()                                            // 切换至Entity设置
                            .versionColumnName("version")                               // 乐观锁字段名(数据库)
                            .logicDeleteColumnName("isDeleted")                         // 逻辑删除字段名(数据库)
                            .enableLombok()                                             // lombok生效
                            .enableTableFieldAnnotation()                               // 所有实体类加注解
                            .serviceBuilder()                                           // 切换至Service层设置
                            .formatServiceFileName("%sService")                         // 设定后缀名
                            .formatServiceImplFileName("%sServiceImpl");                // 设定后缀名
                })
                //模板配置
                .templateEngine(new FreemarkerTemplateEngine())                         // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();

测试使用

点击运行项目即可后台静默在src主目录生成一个generate文件夹和resource目录生成一个mapper文件夹,代码文件都在这两个文件夹里

注意:因为上面关闭了打开目录的开关,所以要看到文件目录生成,需要手动关闭项目才能刷新看到!

 

SpringBoot+MyBatisPlus MyBatis-Plus官网MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 1.2、application.properties 配置 1.3、BootApplication添加@MapperScan注解 1.4、实体 常用注解: 1.5、UserMapper.java 1.6、Controller中使用Wrapper进行条件查询 QueryWrapper的方法: 注 阅读详情

相关推荐

SpringBoot教程(十三) SpringBoot集成MybatisPlus

简称MP)是一个MyBatis?的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-Plus是一个国产框架,有中文的文档,所以使用起来还是很方便的,没有那么大的障碍。当前的最新版本是3.5.1文档上说的十分清楚,这里我就不多说了。直接进入集成步骤。mybtisPlus的常用操作我们就已经介绍完了。mybatisPlus当前的使用热度也是越来越大,通过这篇文章相信大家应该会对mybatisPlus的使用有一个比较深刻的理解。httpshttps。...

m0_67402013的博客 2515

Springboot整合Mybatis Plus【超详细】

springboot整合mybatis plus

玩转Java 1万+

【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus

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

m0_74824517的博客 2421

SpringBoot整合MybatisPlus(详细)

SpringBoot整合MyBatis-Plus基础(详细)

m0_68681879的博客 1万+

Spring Boot 集成MyBatis-Plus

增加集成相关的配置和依赖后,我们又创建了一个简单的接口,用于验证本次集成是否成功。其中谈到了SSM项目中基本的项目结构,相关代码都是从生产代码中抽象出来的,具有很强的参考意义。在古早的应用开发中,需要开发人员写许多的DAL(数据访问层)代码,需要自己管理数据库的连接与关闭,还需要自己从ResultSet中获取数据,然后再将其组装为对象。并且为了保持依赖的松散,控制器是不直接依赖于具体类的,而是依赖于接口。被该注解修饰的类,setters方法返回的该类的实例(即this),而不是void。

m0_74825614的博客 1383

光谱特征选择之模拟退火算法SA

光谱特征选择之模拟退火算法SA。

weixin_42621095的博客 902

SpringBoot集成Mybatis Plus【附源码】

Mybatis plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

笑小枫 2584

如何实现SOLIDWORKS阵列的“智能变更”?

有时,我们在设计一个零件时,零件上有一排阵列孔,同时零件有不同的长度,我们又希望可以做到零件长度改变时,这排孔可以按长度等距增减孔阵列的个数;或是零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那具体要怎么做呢?接下来,我们一起来看看怎么用SOLIDWORKS中简单的操作来实现这两种智能的变更: 零件长度加长或缩短时,这排孔要按长度等距增减孔阵列的个数。 零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那接下来,我们一起来看看怎么用简单的操作来实现这两种智能的

SOLIDWORKS艾金米 2080

springboot之集成mybatis-plus

本文介绍了SpringBoot项目集成MyBatis-Plus的详细步骤。首先对比了MyBatis和MyBatis-Plus的优缺点,重点突出MyBatis-Plus在CRUD操作、条件构造器等方面的优势。然后详细说明了集成过程:1)引入相关依赖;2)配置数据源;3)设置Mapper扫描;4)创建Mapper接口;5)编写Service层;6)定义Controller测试接口。文章还特别强调了分模块部署时的配置注意事项和注解使用的要点。最后通过测试验证了集成的有效性,为开发者提供了完整的MyBatis-Pl

nvkdnx的博客 1168

Python实战:超分辨率图像质量评估全攻略——PSNR、SSIM、LPIPS与NIQE的代码实现与优化

本文详细介绍了在Python中实现超分辨率图像质量评估的完整方案,涵盖PSNR、SSIM、LPIPS和NIQE四大核心指标。通过模块化代码设计、多进程并行处理和GPU加速优化,帮助开发者构建高效、可扩展的评估系统,并提供了实战避坑指南与结果解读方法。

weixin_29053073的博客 476

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1602

SpringBoot 集成Mybatis Plus

MyBatis-Plus 是在 MyBatis 基础上进行增强的一个持久层框架,旨在简化 MyBatis 的开发过程,提高效率,降低重复代码。它并不改变 MyBatis 的核心理念,而是在其上层进行了封装,使开发者可以更方便地进行 CRUD 操作和复杂查询。MyBatis 本身需要手动编写 SQL 和 Mapper 接口,而 MyBatis-Plus 提供了丰富的自动化功能,如内置通用 Mapper、Service、分页插件、条件构造器等,从而大大减少了模板代码的数量。

m0_75260099的博客 1716

如何让C++程序生成dump文件?生成dump文件的方式有哪些?如何使用Windbg分析dump文件?

本文详细介绍了如何让C++程序生成dump文件、生成dump文件的多种方式以及如何使用Windbg分析dump文件,并给出了对应的实战分析案例,有一定的实战参考价值。

dvlinker的技术专栏 5万+

Spring-boot集成mybatis-plus

一.为什么使用Mybatis plus一.为什么使用Mybatis plus。

xbWGf的博客 3357

【项目实战】YOLOV5 +实时吸烟目标检测+手把手教学+开源全部

本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~ 文章目录本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~一、项目展示二、项目资源共享1:训练图片:香烟图片+吸烟手势+烟雾三、

cv君的博客 13万+

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6130

springboot集成MyBatis-Plus

MyBatis-Plus 的集成和使用在 Spring Boot 项目中非常简单。通过 `mybatis-plus-boot-starter`,开发者可以轻松构建基础的 CRUD 操作,并利用 MyBatis-Plus 提供的查询构造器、分页插件等功能,快速处理复杂的业务需求。 - **基础 CRUD**:通过继承 `BaseMapper`,可以直接调用常用的数据库操作方法。 - **复杂查询**:利用 `QueryWrapper` 和 `UpdateWrapper`,实现灵活的条件查询和更新。 - *

Flying_Fish_roe的博客 3143

辉芒微教程第七篇《PWM与PWM3调节LED灯的亮度》

这个其实就是PR3L = 128设置的,由于我们刚刚寄存器设置了8位模式,其设置的范围就是0-255,而128/255≈50%左右,因此PR3L就是我们的占空比调节的寄存器,我们可以通过它来调节占空比,大家可以试试它占空比设置10%,30%,60%来看看它的不同效果,灯的亮度是肯定不一样的,如果有条件的朋友,可以购买一款逻辑分析仪去看他的占空比。平平无期的这个东西有什么东东用,貌似是没什么用,只是一个概念而已,是不是不同设备可以设置1秒,3秒,10秒的周期就行?但是它占空比为什么是50%,怎么得来的?

qq_41809823的博客 827

SpringBoot如何集成mybatis-plus

type-aliases-package这个是配置实体类的包的,这样在xml里面写实体类的时候,就不需要写完整的包名+类名了,只需写类名即可。我们在使用SpringBoot的时候,毫无疑问,一般是和mybatis集成的,而mybatis-plus作为mybatis的进阶,又是必须要集成的。然后,还需要在启动类上面,加上MapperScan的注解,然后写上basePackages="",这个括号里面,写上mapper类的包名,代表要扫描的mapper类的路径。那么,你在集成的过程中有遇到什么问题呢?

会编程的蜗牛的博客 1090

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringBoot集成MyBatis-plus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。说明:QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件。

qq_43548590的博客 9407

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: SpingBoot之替换容器为Undertow
下一篇: 强大的图片处理工具GraphicsMagick
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值