MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官网:https://mybatis.plus/ 或 https://mp.baomidou.com/
文档地址:https://mybatis.plus/guide/
源码地址:https://github.com/baomidou/mybatis-plus
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。
Mybatis-Plus 是由 baomidou(苞米豆)组织开发并且开源的,目前该组织大概有 30 人左右。
码云地址:https://gitee.com/organizations/baomidou
对于 Mybatis 整合 MP,有三种常用用法,分别是:
jdbc.properties:
Mybatis-config.xml:
使用 SpringBoot 可以进一步地简化 MP 的整合。
log4j.properties:
在 MP 中,可以通过 @TableField 注解来指定字段的一些属性。常用场景有以下两点:
对象中的属性名和字段名不一致的问题(非驼峰)。
对象中的属性字段在表中不存在的问题。
代码示例:
测试效果:
在 MP 中,更新操作有两种方式:一种是根据 id 更新,另一种是根据条件更新。
MP 提供了多种查询操作,比如根据 id 查询、批量查询、查询单条数据、查询列表、分页查询等。
配置分页插件:
在 MP 中,Wrapper 接口的实现类关系如下:
可以看到,AbstractWrapper 和 AbstractChainWrapper 是重点实现,接下来主要介绍 AbstractWrapper 及其子类。
说明:
QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件。
而 entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为。
官网文档地址:https://mybatis.plus/guide/wrapper.html
方法定义一:
: 为数据库字段名,为字段值: 为时,则在的为时调用 isNull 方法;为时,则忽略为。
方法定义二:
:过滤函数,是否允许字段传入比对条件中与 :同上
方法:
在 MP 中默认是查询所有的字段,如果有需要也可以通过 select 方法进行指定字段。
有些时候我们可能会有这样的需求:在插入或更新数据时,希望有些字段可以自动填充数据,比如密码、version 等。在 MP 中就提供了这样的功能,可以实现自动填充。
FieldFill 提供了多种模式选择:
测试结果:
ActiveRecord(简称 AR)一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言,对于
ActiveRecord 往往只能感叹其优雅。
什么是 ActiveRecord ?
在类中都有相应的 Field 。
在 MP 中开启 AR 非常简单,只需要将实体对象继承 Model 即可(注意:UserMapper 还是需要保留的)。
以上就是本篇文章【Mybatis-Plus 介绍 & CRUD & 条件构造器 & 自动填充 & ActiveRecord】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/4935.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多