天天看点

mybatis-plus 常用配置

  • id自增
#主键类型
      #实体类主键策略有3种( 注解 > 全局 > 默认 )
      #AUTO 数据库ID自增
      #INPUT 用户输入ID
      #ID_WORKER 全局唯一ID,Long类型的主键
      #ID_WORKER_STR 字符串全局唯一ID
      #UUID 全局唯一ID,UUID类型的主键
      #NONE 该类型为未设置主键类型
id-type: ID_WORKER
#打印结果  1318540344565608449

id-type: ID_WORKER_STR
#打印结果  1318541348350595074

id-type: UUID
#打印结果  c4c4d15ab3206cb66879882c2055fc7f


    @Autowired
    SysUserMapper mapper;

	@Test
	void contextLoads() {
		SysUser sysUser =new SysUser();
		sysUser.setName("123");
		mapper.insert(sysUser);
	}

           
  • 插入,修改,查询的入参条件过滤

    修改时会自动过滤 null 值,但查询条件并不会自动过滤

SysUser sysUser =new SysUser();
		sysUser.setName(null);
		sysUser.setAge(1234);
		//修改
		UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper();
		updateWrapper.lambda().eq(SysUser::getId,"1318541929886773249");
		mapper.update(sysUser,updateWrapper);
		
		打印的sql:
		UPDATE sys_user SET age=? WHERE (ID = ?)
		1234(Integer), 1318541929886773249(String)
           

查询接口只获取需要的字段

QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
		//queryWrapper.lambda().select(需要显示的值)
		queryWrapper.lambda().select(SysUser::getEmail,SysUser::getEmail).eq(SysUser::getAge,1234);
		List<SysUser> sysUsersList = mapper.selectList(queryWrapper);
           

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/biji?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

debug: false

########## Mybatis 自身配置 ##########
mybatis-plus:
  # 注意注意
  # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
  # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
  mapper-locations: classpath:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  type-aliases-package: com.mysql.entity
  global-config:
    db-config:
      #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
      field-strategy: not_empty
      #主键类型
      #实体类主键策略有3种( 注解 > 全局 > 默认 )
      #AUTO 数据库ID自增
      #INPUT 用户输入ID
      #ID_WORKER 全局唯一ID,Long类型的主键
      #ID_WORKER_STR 字符串全局唯一ID
      #UUID 全局唯一ID,UUID类型的主键
      #NONE 该类型为未设置主键类型
      id-type: auto
      #驼峰下划线转换
      db-column-underline: true
      #表名、是否使用下划线命名,默认数据库表使用下划线命名  true
      table-underline: true
      #刷新mapper 调试神器
      refresh-mapper: true
      #数据库大写下划线转换
      capital-mode: true

  configuration:
    #MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知
    #NONE:不做任何处理 (默认值)
    #WARNING:以日志的形式打印相关警告信息 .
    #FAILING:当作映射失败处理,并抛出异常和详细信息
    auto-mapping-unknown-column-behavior: failing
    #解决 resultMap 为map时值为空不返回的场景
    call-setters-on-nulls: true


           

继续阅读