1.简要介绍
1.作用:简化单表的增删改查CRUD,省去单表sql和mapper编写.也可以省去Service的编写,代码更加简化,但可能会导致循环依赖问题(A依赖B,B依赖A即循环依赖),出现循环依赖问题改写注入调用mapper可解决
2.mybatis-plus依赖:com.baomidou mybatis-plus-boot-starter
3.1其中自定义的Mapper接口需要实现BaseMapper<实体类>,然后就可以集成到BaseMapper中定义的方法了,例public interface UserMapper extends BaseMapper<User>{}
,到时@Autowired注入实体类mapper调用usermapper
3.2对于service的简化,可以用自己的service去继承它提供的service
接口继承IService<T>,实现类继承ServiceImpl<M,T>
例子 public interface StudentService extends IService<Student> {}
public class StudentServiceImpl extends ServiceImpl<StudentMapper,Student> implements StudentService {}
2.注意事项
1.如果表名和实体类名称不一致,可用@TableName标注在实体类上与表对应
如@TableName(“tb_user”)标注在实体类User上
如果大部分表前缀固定,可在配置文件中进行全局配置,但是优先级比注解配置低
mybatis-plus.global-config.db-config.table-prefix:tb_#表前缀
2.@TableId标注在id上可通过type值声明主键生成策略,可主键自增也可雪花算法生成纯数字
大部分主键都是自增,也可全局配置文件配置mybatis-plus.global-config.db-config.id-type:auto
3.用mybatis-plus还应配置日志打印和驼峰映射配置文件
3.使用规则
MybatisPlus可以单表增(insert)、删(根据id单个删deleteById或id集合批量删deleteBatchIds)、改(id修改不为空的字段updateByIds)、查(根据单个id查selectById或多个id批量查询selectbyIds),对于跟复杂的查询使用了封装思想将查询条件封装成Wrapper对象
new QueryWrapper,由于mybatis-plus支持lambda表达式,字段不易写错且支持链式编程,更常用new LambdaQueryWrapper,向封装条件wrapper中填写封装查询条件,最后mapper实例调用方法查wrapper即可,对于带有分组过滤的查询就不能使用lambda表达式只能用Querywapper(如count>1无法在lambda表达式中书写).
如果是更新对应的是UpdateWrapper,删除还是Querywapper.
MyBatis-Plus提供注解实现逻辑删除功能,数据非常宝贵有事不会直接从数据库中物理删除而是使用逻辑删除,@TableLogic(value=”0″,delval=”1″) 未删除状态/删除状态
对于数据表中的一些公共字段如创建时间、更新时间,my-batisPlus底层体现了SpringAOP思想,添加注解可以自动填充,如@TableField(fill = FieldFill.INSERT)、@TableField(fill = FieldFill.INSERT_UPDATE),但是需要在配置类中实现MetaObjectHandler方法重写insertFill与updateFill方法。
数据表中没用的多余字段可用@TableField(exist = false)进行标识
原文地址:https://blog.csdn.net/sunyunfei1994/article/details/135991594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_65589.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!