MyBatis-Plus快速入门使用

一,MyBatis-Plus介绍

MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatis-plus如何简化开发呢?一般我们写crud方法都需要在mapper,mapper.xml,service,service.impl中写方法(ssm),用了mybatis-plus后,可以直接调用crud方法,不需要写xml了。
下面介绍mybatis-plus如何使用。

二,快速使用

1.添加pom文件依赖

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>

2.实体类

@Data
public class Subject implements Serializable {
    @TableId(value = "id",type = IdType.AUTO)//指定自增策略
    private Integer id;
    private String subject;
    private Integer parentId;
    private Integer typeId;
    private Date createTime;
    private Date updateTime;
    @TableField(exist = false)
    private boolean edit=false;
    @TableField(exist = false)
    private Set<Subject> children=new HashSet<>();

注解: @TableField(exist = false):数据库中没有,实体类中有,查询的时候不会报错
@TableId(value = “id”,type = IdType.AUTO):在数据库中设置自增,在实体类中也要设置。

注意:MyBatis-Plus分别提供了mapper和service层的crud方法,你可以要么只调用mapper层的crud方法,也可以只调用调用service层方法。

2.1mapper层

@Mapper
public interface ExpenseMapper extends BaseMapper<Expense> {
}

只需要继承BaseMapper即可,BaseMapper中接口中有很多的crud方法,具体可以按ctrl点进去看。
MyBatis-Plus快速入门使用
在service.impl中就可以直接调用crud方法啦。
MyBatis-Plus快速入门使用
2.2 service层
如果是调用service的crud接口

@Service
public class ExpenseServiceImpl extends ServiceImpl<ExpenseMapper, Expense> implements ExpenseService {
}

只需要实现ServiceImpl即可,同样,ServiceImpl里面也有很多方法。
MyBatis-Plus快速入门使用在service.impl中就可以直接调用crud方法啦。

MyBatis-Plus快速入门使用
3.mybatis-plus的条件查询
mybatis-plus查询所有可以直接调用list方法,当需要根据id或者其他条件查询时,mybatis-plus提供方法:List list(Wrapper queryWrapper);其中queryWrapper 实体对象封装操作类,例子如下:

        QueryWrapper<Expense> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(Expense::getTypeId, typeId);
        List<Expense> list = expenseService.list(queryWrapper);

这里是根据typeId查询,你也可以设置其他参数。

4.其他优点
mybatis-plus除了通用的crud方法以外,还可以进行代码生成,条件构造器。
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
具体还有什么不清楚的可以戳MyBatis-Plus官方文档:mybatis-plus