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点进去看。
在service.impl中就可以直接调用crud方法啦。
2.2 service层
如果是调用service的crud接口
@Service
public class ExpenseServiceImpl extends ServiceImpl<ExpenseMapper, Expense> implements ExpenseService {
}
只需要实现ServiceImpl即可,同样,ServiceImpl里面也有很多方法。在service.impl中就可以直接调用crud方法啦。
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