mybatis和mybatisplus的区别

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);
mybatis和mybatisplus的区别_第1张图片
mybatisplus就不需要了,调用mybatisplus自带的方法,传递new Page<>(page, size)即可自动分页,有IPage的都是可以分页的方法,并且可以指定查询字段调用select方法即可,不调用就会查出所有的字段,多表的时候也可以使用,如下:

(1)这种是重写了源码进行分页查询
mybatis和mybatisplus的区别_第2张图片
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}所有的条件。
mybatis和mybatisplus的区别_第3张图片

(2)自定义自己的方法分页查询
调用mapper层自己定义的方法,这种写法没有使用querywapper,分页mybatisplus,条件mybatis
mybatis和mybatisplus的区别_第4张图片
在这里插入图片描述
mybatis和mybatisplus的区别_第5张图片

你可能感兴趣的:(mybatis,java,开发语言)