mybatisPlus-创新互联-成都快上网建站

mybatisPlus-创新互联

MybatisPlus简单使用

mybatisplus是国人再mybatis做了增强的

创新互联是一家专业提供临夏企业网站建设,专注与网站制作、做网站、H5技术、小程序制作等业务。10年已为临夏众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

原有功能都能用,做了更多加强简化开发

com.baomidoumybatis-plus-boot-starter3.5.2

数据层

继承了BaseMapper并且指定pojo泛型之后就有了基础的增删改查功能,表名默认是小写pojo类名

@Mapper
public interface BookDao extends BaseMapper{}

分页制作

首先需要加上拦截器

@Configuration
public class MyConfig {@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor my = new MybatisPlusInterceptor();
        my.addInnerInterceptor(new PaginationInnerInterceptor());
        return my;
    }
}
IPage page = new Page(1,2);
IPagebookIPage = bookDao.selectPage(page,null);
System.out.println(bookIPage.getRecords());

查询添加条件查询

小于

@Test
void selectBYId(){QueryWrapperQueryWrapper = new QueryWrapper<>();
    QueryWrapper.lt("id",8);
    Listbooks = bookDao.selectList(QueryWrapper);
    System.out.println(books);
}

第二种格式lambda格式

直接通过实体类种的get方法

@Test
void selectBYId1(){LambdaQueryWrapperlqw= new LambdaQueryWrapper<>();
    lqw.le(Book::getId,8);
    Listbooks = bookDao.selectList(lqw);
    System.out.println(books);
}

null值判定的话上面的按同样,只不过可以在前面多加一个返回布尔值的条件参数

查询投影

查询投影指的是在通过指定查询条件或者操作传给方法,达到查询结果中包含未定义的属性

lqw.select("count(*) as nums,gender")
lqw.groupBy("gender")

条件查询 : lt le ge gt eq between like

字段映射,遇到和列名不一致的dao层可以使用注解@TableField(value = “列名”) 加载属性前面进行指定

如果定义了数据库表里不存在的列也可以通过@TableField(exist=false) 注解来说明不存在

如果想要比如密码字段不参与查询全部展示,那么@TableField(value = “列名”,select = false)通过指定select查询不返回结果列

指定表名@TableName(“表名”)使用该注解在pojo类上方

id生成策略

可以控制id生成的策略方式

使用@TableId(type=IdType.xxx)

选项.AUTO 还是数据库的自增来进行自增也就是null

选项.INPUT 需要把自增关闭,这就需要自己指定id了

选项.ASSIGN_ID 通过雪花算法和一系列操作生成id

全局指定id生成策略,通过配置文件的配置来进行设定

mybatis-plus:
  global-config:
    db-config:
      id-type: auto

多记录操作

查询多个id的信息和删除多个id的信息

lqw.selectBatchIds(传入List)和lqw.deleteBatchIds(传入一个List)

逻辑删除

逻辑删除字面意思逻辑层面删除,一个新字段标记了是否已经被删除

可以通过@TableLogic注解来设置并且指定被删除和未被删除的值

当然还是通过配置来全局指定好点

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted
      logic-not-delete-value: 0
      logic-delete-value: 1

指定逻辑删除之后,继承自带的删除就变成了逻辑删除语句

乐观锁拦截

通过一个每次操作不断累加的字段防止多次同时操作

首先要在前边分页拦截器那边在加上一个拦截器

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor my = new MybatisPlusInterceptor();
    my.addInnerInterceptor(new PaginationInnerInterceptor());
    my.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); //乐观锁拦截器
    return my;
}

创建一个拦截器字段,使用的时候必须先要获取当前拦截器字段值,在每次进行修改的时候会进行自动拼接+1操作,来保证相同

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:mybatisPlus-创新互联
网站URL:http://kswjz.com/article/doeehj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流