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

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

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第1张图片

 

入门案例

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第2张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第3张图片 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第4张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第5张图片

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

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第6张图片 

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第7张图片

 

标准数据层开发

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第8张图片

 

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第9张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第10张图片

 

 MP分页查询功能

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第11张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第12张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第13张图片

 条件查询

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第14张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第15张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第16张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第17张图片 

NULL值控制

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第18张图片 我们封装个新的userQuery类继承user类,再新建成员变量private Integer age2;

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

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

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第19张图片 

 

 查询投影

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第20张图片

 as 后面也就是起别名

查询条件

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第21张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第22张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第23张图片

 

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

字段映射跟表明映射

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第24张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第25张图片 

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第26张图片 

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第27张图片

 增删改

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第28张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第29张图片 

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第30张图片 

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

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第31张图片

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

多记录操作

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第32张图片

 

逻辑删除

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第33张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第34张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第35张图片 

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第36张图片 

 

乐观锁

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第37张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第38张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第39张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第40张图片 

 Version 的修改是 version = version+1;

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

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第41张图片

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

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

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

 

代码生成器

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第42张图片

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第43张图片

 

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第44张图片

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第45张图片 

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第46张图片 

 java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁_第47张图片

 

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();
}

你可能感兴趣的:(java,mybatis,开发语言)