聊一聊关于mybatis-plus的日常开发
背景:
- 日常开发中,Dao层(Date Access Object)作为数据访问层,承载大量的数据交互处理,直接联系数据库,服务于业务逻辑
- 这里就不得不提到mybatis,一款非常优秀的持久层框架,直接免除传统JDBC代码,通过注解、xml配置数据对象映射即可实现数据CRUD(增删改查)
- 而mybatis-plus作为国产之光,由国人苞米豆团队在mybaits基础上进一步增强,上手更为快速
(小声,贴一下mybaitis和mybatis-plus官方文档:)
=>mybstis
=>mybatis-plus
spring-boot项目中使用mybatis-plus(推荐IDEA为开发工具)
- 项目maven配置文件pom.xml中引入依赖:
1 | <!-- mybatis-plus --> |
- 我日常使用数据库即mysql,所以引入mysql依赖:
1 | <!-- mysql--> |
- 在配置文件application.yml或application.properties中配置数据库连接:
1 | spring: |
- 在IDEA中写项目的话最好装一个mybatisX插件,写自定义sql的时候比较方便
日常使用
1. 代码生成器
这玩意儿用了一次就知道多方便了,自动生成四层:
注: 它是根据数据架构自动生成的实体类、控制层等等,一张表对应一个实体类
- 具体代码可以看mybatis-plus文档的
- 贴一张项目截图示例:
2.普通service层CRUD接口
mybatis-plus为开发者封装了不少可以直接调用的CRUD接口
- Get
- Save
- Remove
- Update
均支持泛型,详见官方文档
3.条件构造器wrapper
- Wrapper: 条件构造抽象类,最顶端父类
- AbstractWrapper: 用于查询条件封装
- QueryWrapper: Entiry对象封装操作类
- UpdateWrapper: update条件封装
- AbstractLambdaWrapper: Lambda语法使用Wrapper统一处理解析
- LambdaQueryWrapper: 使用Lambda语法查询
- LambdaUpdateWrapper: Lambda语法更新
条件构造器根据sql语法转换了许多的函数,如eq,gt等,这个一搜就很多
注:日常使用时最多用的是QueryWrapper、UpadateWrapper、LambdaQueryWrapper,前者使用条件构造函数时可以使用lambda()方法将该条件转化为lambda语法,这个有时候需要注意
使用示例:
4.自定义sql
mybatis-plus当然也是支持自定义sql语句的,可以使用@select,@update等注解(暂时没怎么用)或者在Mapper.xml中书写自定义方法
如:
mapper.xml文件示例:
mapper层对应文件示例:
注:在Mapper.xml中除了select可以指定返回值外,别的都不可以有
小结:
mybatis-plus属实是生产力工具,极大简化开发步骤(spring也有功劳),但是目前耳易老师写的项目还太少,还是很多地方没用到(冰山一角)
上述所有相关内容只是个人近期的一个小梳理,在脑海中留个印象(猪脑不好使)