mybatis-plus系统化学习之配置精讲

1.背景

mybatis-plus给出了很多配置,

大部分的配置使用默认的就可以了,

但是还是有很多需要的配置比如:

# mybatis-plus相关配置
mybatis-plus:
  # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
  mapper-locations: classpath:mapper/*.xml
  # 以下配置均有默认值,可以不设置
  global-config:
    db-config:
      #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
      id-type: auto
      #字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
      insertStrategy: NOT_EMPTY
      updateStrategy: NOT_EMPTY
  configuration:
    # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
    map-underscore-to-camel-case: true
    # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
    call-setters-on-nulls: true
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

 这些配置完美通常是拷贝过来就是用,

但是有时后也会做修改

2.配置

官方配置文档说的很清楚,

相信以大家的实力,

不需要我说太多,

只是这里给大家引个路,

下面以常见配置保存和修改字段配置空字符串的处理为例

先给出官方配置文件文档链接:

https://baomidou.com/config/

配置文档截图如下:

 看上去虽然有点多,但是很多默认的就可以了.

3.案例

 演示代码如下:

 1 package com.ldp.demo01;
 2 
 3 import com.ldp.entity.SysUser;
 4 import com.ldp.mapper.SysUserMapper;
 5 import org.junit.Test;
 6 import org.junit.runner.RunWith;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.boot.test.context.SpringBootTest;
 9 import org.springframework.test.context.junit4.SpringRunner;
10 
11 /**
12  * @author 姿势帝-博客园
13  * @address https://www.cnblogs.com/newAndHui/
14  * @WeChat 851298348
15  * @create 12/07 12:23
16  * @description <p>
17  * 配置:
18  * https://baomidou.com/config/
19  * </p>
20  */
21 @RunWith(SpringRunner.class)
22 @SpringBootTest
23 public class Test09Config {
24     @Autowired
25     private SysUserMapper sysUserMapper;
26 
27     /**
28      * 字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
29      * insertStrategy: NOT_EMPTY
30      * updateStrategy: NOT_EMPTY
31      *
32      * ==>  Preparing: INSERT INTO sys_user ( name, we_chat ) VALUES ( ?, ? )
33      * ==> Parameters: 李东平3(String), 851298348(String)
34      * <==    Updates: 1
35      * 注意因为是非空判断,所以password没有加入到增加的sql语句中
36      */
37     @Test
38     public void test01() {
39         SysUser sysUser = new SysUser().setName("李东平3").setWeChat("851298348").setPassword("");
40         int rows = sysUserMapper.insert(sysUser);
41         System.out.println("受影响行数:" + rows);
42         System.out.println("主键id=" + sysUser.getId());
43     }
44 
45     /**
46      * 字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
47      * insertStrategy: NOT_EMPTY
48      * updateStrategy: NOT_EMPTY
49      *
50      * ==>  Preparing: UPDATE sys_user SET name=? WHERE id=?
51      * ==> Parameters: 李东平3-修改(String), 22(Integer)
52      * <==    Updates: 1
53      * 注意因为是非空判断,所以weChat没有加入到修改的sql语句中
54      */
55     @Test
56     public void test02() {
57         SysUser sysUser = new SysUser().setId(22).setName("李东平3-修改").setWeChat("");
58         int rows = sysUserMapper.updateById(sysUser);
59         System.out.println("受影响行数:" + rows);
60         System.out.println("主键id=" + sysUser.getId());
61     }
62 
63 }
View Code

mybatis-plus系统化学习教程:https://www.cnblogs.com/newAndHui/p/14141950.html

完美!

posted @ 2020-12-07 17:17  李东平|一线码农  阅读(323)  评论(0编辑  收藏  举报