为什么使用MyBatis Plus?
- 在Mybatis中我们对单表的增删改查的操作,都是自己再mapper.xml中进行代码的书写,这样一来我们书写的代码比较的麻烦。
- 我们目前封装数据库的实体的时候,每一表都需要自己的书写实体类,这样一来,我们书写的代码就比较的麻烦。
解决方法:
使用MyBatisPlus。
MyBatisPlus简介 (简称 MP)
MP是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官方愿景:
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
原理图:
第一步:加入Maven的依赖
第二步:
在搭建好的SSM环境中将MyBatis的工厂bean代替MP的工厂bean即可,MP工厂bean名如下图
在此时还可将MyBatis的全局策略一起进行配置
在书写mapper层的接口时,让接口继承BaseMapper<T>,即可实现MyBatisPlus的使用
MP条件构造器Wrapper的使用
通过MP简单的增删改查SQL语句我们可以不用再进行书写但是,但是很多时候SQL语句时非常复杂的,比如or、and、in、<、>以及模糊查询等时该怎么办?
MP提供了功能非常强大的Wrapper条件构造器.条件构造器其实就是一个对象,以方法的形式提供了数据库操作的筛选关键字,我们调用该对象,来拼接我们的筛选条件即可。
实现:
创建QueryWrapper对象,使用该对象中提供的对应的数据库操作的方法,来
完成条件的拼接,QueryWrapper对象最终存储拼接好的Sql片段,将片段
拼接在Sql语句中。
MP的AR模式:
MP的操作模式较于原有Mybatis的数据库操作流程没有任何变化,只是我们在编写代码的时候不用在mapper层声明Sql语句或者XML文件了,提升开发效率。可以直接通过java对象实现对数据库的增删改查操作,用起来美滋滋!!!
具体实现步骤如下:
- 创建项目完成Spring和MP的集成
- 创建数据库表对应的实体类,继承Model类
- 在实体类中覆写pkVal方法.
- 创建Mapper接口并继承BaseMapper接口
- 创建Spring对象,让Spring容器完成对Mapper层的实例化扫描
- 创建实体类对象,直接调用实体类从Model中继承的数据库方法完成数据库操作。
AR模式的优点:
AR模式较于传统的MP模式操作数据库,我们不用再在业务层通过获取Mapper对象然后再将实体类传入给mapper层完成数据库操作,直接使用实体类对象即可完成操作,大大提升开发效率。