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.配置
官方配置文档说的很清楚,
相信以大家的实力,
不需要我说太多,
只是这里给大家引个路,
下面以常见配置保存和修改字段配置空字符串的处理为例
先给出官方配置文件文档链接:
配置文档截图如下:
看上去虽然有点多,但是很多默认的就可以了.
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 }