MyBatis-Plus是对MyBatis框架的封装,MyBatis-Plus具有许多针对CRUD进行的简化方法,通过继承BaseMapper进行实现,简单的说 ,如果你使用了MyBatis-Plus,那么项目单表查询都不需要你写sql了,利用自带的方法即可,多表查询也可以简化开发,分页也不需要写额外代码。
mybatis和MyBatis-Plus开发对比:
1、MyBatis-Plus可以说是包含了mybatis,使用mybatisplus可以继续用mybatis的写法,以下3张图是mybatisplus的,它的接口以及实现类在mybatis的基础上分别多了IService和ServiceImpl,泛型就是要返回的实体类,Dao就是mapper类,mapper类又继承了BaseMapper,如果还是想写mybatis的写法,就把IService,ServiceImpl,BaseMapper这些新加的都去除即可。
2、分页的对比,下面这张图是mybatis的,分页的时候还需要额外在查询之前加上Page page = PageHelper.startPage(goPage, pageSize, true);
mybatisplus就不需要了,调用mybatisplus自带的方法,传递new Page<>(page, size)即可自动分页,有IPage的都是可以分页的方法,并且可以指定查询字段调用select方法即可,不调用就会查出所有的字段,多表的时候也可以使用,如下:
(1)这种是重写了源码进行分页查询
mybatisplus自带方法pageMaps的源码:
到mapper类中在重写该源码方法,将泛型T替换成我们需要返回的实体类即可
xml中sql的编写,因为我们使用了mybatisplus的querywapper,所以sql可以进行简写,
e
w
.
s
q
l
S
e
l
e
c
t
就是字段,
{ew.sqlSelect}就是字段,
ew.sqlSelect就是字段,{ew.customSqlSegment}所有的条件。
(2)自定义自己的方法分页查询
调用mapper层自己定义的方法,这种写法没有使用querywapper,分页mybatisplus,条件mybatis