java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁

MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率

 

入门案例

 

继承BaseMapper<自己的domain类> 就可以了,自动装配后直接会有各种方法

 

 

 

标准数据层开发

 

 

 

 MP分页查询功能

 

 

 条件查询

 

 

 

NULL值控制

 我们封装个新的userQuery类继承user类,再新建成员变量private Integer age2;

这样我们测试,就可以用set方法设置age跟age2

当不为null的时候才执行各自的代码

 

 

 查询投影

 as 后面也就是起别名

查询条件

 

 

更多查询条件设置参看https://mybatis.plus/guide/wrapper.html#abstractwrapper

字段映射跟表明映射

 

 

 

 增删改

 

 

 上面的图为雪花算法,总共64位

 全局配置,我们就不用一个一个配置了

多记录操作

 

逻辑删除

 

 

 

 

乐观锁

 

 

 

 Version 的修改是 version = version+1;

执行前先查询,user就会携带当前的version:

如果两个人一起想修改同一个id下的name,他们一开始得到的version是一样的

当任意一个完成修改的时候,version就加一了

那么另一个人还用一开始得到的version作为条件修改,就没办法完成,这也就是抢购的原理

 

代码生成器

 

 

 

 

 

 

 

public static void main(String[] args) {
    //1.获取代码生成器的对象
    AutoGenerator autoGenerator = new AutoGenerator();

    //设置数据库相关配置
    DataSourceConfig dataSource = new DataSourceConfig();
    dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC");
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    autoGenerator.setDataSource(dataSource);

    //设置全局配置
    GlobalConfig globalConfig = new GlobalConfig();
    globalConfig.setOutputDir(System.getProperty("user.dir")+"/mybatisplus_04_generator/src/main/java");    //设置代码生成位置
    globalConfig.setOpen(false);    //设置生成完毕后是否打开生成代码所在的目录
    globalConfig.setAuthor("黑马程序员");    //设置作者
    globalConfig.setFileOverride(true);     //设置是否覆盖原始生成的文件
    globalConfig.setMapperName("%sDao");    //设置数据层接口名,%s为占位符,指代模块名称
    globalConfig.setIdType(IdType.ASSIGN_ID);   //设置Id生成策略
    autoGenerator.setGlobalConfig(globalConfig);

    //设置包名相关配置
    PackageConfig packageInfo = new PackageConfig();
    packageInfo.setParent("com.aaa");   //设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径
    packageInfo.setEntity("domain");    //设置实体类包名
    packageInfo.setMapper("dao");   //设置数据层包名
    autoGenerator.setPackageInfo(packageInfo);

    //策略设置
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig.setInclude("tbl_user");  //设置当前参与生成的表名,参数为可变参数
    strategyConfig.setTablePrefix("tbl_");  //设置数据库表的前缀名称,模块名 = 数据库表名 - 前缀名  例如: User = tbl_user - tbl_
    strategyConfig.setRestControllerStyle(true);    //设置是否启用Rest风格
    strategyConfig.setVersionFieldName("version");  //设置乐观锁字段名
    strategyConfig.setLogicDeleteFieldName("deleted");  //设置逻辑删除字段名
    strategyConfig.setEntityLombokModel(true);  //设置是否启用lombok
    autoGenerator.setStrategy(strategyConfig);
    //2.执行生成操作
    autoGenerator.execute();
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值