抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

耳易老师

从此无心爱良夜,任他明月下西楼

聊一聊关于mybatis-plus的日常开发


背景:

  • 日常开发中,Dao层(Date Access Object)作为数据访问层,承载大量的数据交互处理,直接联系数据库,服务于业务逻辑
  • 这里就不得不提到mybatis,一款非常优秀的持久层框架,直接免除传统JDBC代码,通过注解、xml配置数据对象映射即可实现数据CRUD(增删改查)
  • 而mybatis-plus作为国产之光,由国人苞米豆团队在mybaits基础上进一步增强,上手更为快速

(小声,贴一下mybaitismybatis-plus官方文档:)
=>mybstis
=>mybatis-plus


spring-boot项目中使用mybatis-plus(推荐IDEA为开发工具)

  1. 项目maven配置文件pom.xml中引入依赖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    <!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>

<!-- mybatis-plus代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>

<!-- freemarker 代码生成器的模板,不要忘了引入-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
  1. 我日常使用数据库即mysql,所以引入mysql依赖:
1
2
3
4
5
<!-- mysql-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
  1. 在配置文件application.yml或application.properties中配置数据库连接:
1
2
3
4
5
spring:
datasource:
username: "对应数据库用户名"
password: "对应密码"
url: jdbc:mysql:///"项目对应数据架构"
  1. 在IDEA中写项目的话最好装一个mybatisX插件,写自定义sql的时候比较方便
    mybatisX

日常使用

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语法,这个有时候需要注意

使用示例:
wrapper示例


4.自定义sql

mybatis-plus当然也是支持自定义sql语句的,可以使用@select,@update等注解(暂时没怎么用)或者在Mapper.xml中书写自定义方法
如:
mapper.xml文件示例:
Mapper.xml
mapper层对应文件示例:

:在Mapper.xml中除了select可以指定返回值外,别的都不可以有


小结:

mybatis-plus属实是生产力工具,极大简化开发步骤(spring也有功劳),但是目前耳易老师写的项目还太少,还是很多地方没用到(冰山一角)

上述所有相关内容只是个人近期的一个小梳理,在脑海中留个印象(猪脑不好使)

评论