MyBatisPlus

MyBatis-Plus简介:

主体知识点:

 MyBatis-Plus官网:

简介 | MyBatis-Plushttps://www.mybatis-plus.com/guide/#%E7%89%B9%E6%80%A7

注解 

(一)@TableName("表名"):表名注解

value属性指定表名:

Mybatis会默然把实体名的首字母小写形式,当做成其对应的数据库表名,所以特殊情况下,需要我们设置前缀,或者单独指定表名。

设置全局实体类所对应的表名的统一前缀:

  #设置MyBatis-Plus的全局配置
  global-config:
    db-config:
      #设置注解@TableName("表名") 指定表名的前缀
      table-prefix: tb_

(二)@TableId:组件注解

MybatisPlus默认把实体中名为id的字段,看做成主键。而实际开发中,存在主机字段名不为id的情况,所以需要我们手动指定。

使用:在实体类中,把@TableId放在主健属性上即可

1,value属性:

当实体类属性和数据主键字段名字不对应时,可以通过@TableId的value属性指定映射到数据库的某个字段

 2,type属性:

 Mybatis主键的生成策略默认采用雪花算法,当想要改成自增生成id时,需两步设置:

  1. 数据库表中,主键字段名设置为自增
  2. 实体类中,@TableId的type属性设置为

 常用的主键生成策略:

 设置全局统一的主键生成策略:

在application.yml配置文件中配置

  #设置MyBatis-Plus的全局配置
  global-config:
    db-config:
      #设置注解@TableName("表名") 指定表名的前缀
      table-prefix: tb_
      #设置全局主键生成策略
      id-type: auto

id-type可以选的值 

 雪花算法

 

(三)@TableField:字段注解(非主键)

解决属性名和普通数据库字段名(非主键)不一致问题

1,框架自动映射的情况:

2,@TableField的value属性手动设置映射:

 

(四) @TableLogic:逻辑删除

 给实体特定某个属性添加这个注解后,使用框架提供的删除方法,会默认变成修改该字段值为1的修改操作,且提供的所有查询方法,也会默认查询未被删除过的记录(该字段值为0)

这个特定属性对应的数据字段要设置为int类型,且设置默认值为0(代表未删除)

 

条件构造器wapper

结构:

 P33

分页插件

1,创建拦截器

@Configuration
public class MyBatisPlusApplication {
    @Bean
    public MybatisPlusInterceptor plusInterceptor(){
        //拦截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //添加分页拦截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //添加乐观锁插件
        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        //return to SpringIOC
        return mybatisPlusInterceptor;
    }
}

2,使用

    @Test
    public void testPage1(){
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.ge(User::getAge,23);
        Page<User> page = new Page<>(2,3);
        userMapper.selectPage(page, queryWrapper);
        System.out.println(page);
        System.out.println(page.getRecords());
    }

乐观锁和悲观锁

 两者地区别

 (一)乐观锁的实现流程:

P51 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值