zoukankan      html  css  js  c++  java
  • 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

    完美!

  • 相关阅读:
    解决chrome console打印的信息一闪而过
    Docker 构建自定义镜像
    Docker 镜像、容器、仓库
    Docker 简介、下载安装
    执行yum list installed | grep xxx 命令时报错:未提供依赖perl-DBD-SQLite、perl-DBI
    SpringBoot 配置多种运行环境
    SpringCloud Config 分布式配置管理
    SpringCloud Sleuth+Zipkin 分布式链路追踪
    Dubbo 配置中心、元数据中心
    dubbo admin的使用
  • 原文地址:https://www.cnblogs.com/newAndHui/p/14098173.html
Copyright © 2011-2022 走看看