MybatisPlus入门

目录

一.快速入门

1.1 入门案例

1.2 常用注解

1.3 常用配置

二.核心功能

2.1 条件构造器

2.1.1 基于QueryWrapper的查询

2.1.2 基于UpdateWrapper的更新

 2.2 自定义SQL

2.3 Service接口


MybatisPlus顾名思义就是Mybatis的plus版本,但是他并不是要取代Mybatis,而是希望能成为Mybatis最好的搭档。

MybatisPlus具有很多能够帮助我们日常开发的功能,比如引入其不会对我们的工程造成任何影响,我们依旧可以使用Mybatis,只做增强不做改变;

只需要简单的配置就可以快速的进行单表的增删改查操作;

内置许多丰富的功能,代码生成、自动分页、逻辑删除、自动填充等;

一.快速入门

1.1 入门案例

通过一个入门案例感受MybatisPlus进行单表的增删改查。

现在写了一个小案例,其中的功能有新增用户、根据id查询用户、根据id批量查询用户、根据id更新用户、根据id删除用户这些简单的crud功能。

这是对应数据库中的数据。

如果是使用mybatis我们的写法是这样的。

但是如果我们使用MybatisPlus呢?

首先我们需要进行配置。

接着在mapper接口中继承BaseMapper,并指定对应的实体类。

准备好这两步之后我们的开发就变成了下图这些效果。

并且测试这些方法也是没问题的。

使用MybatisPlus很简单,只需要注入对应的好赖,Mapper接口继承BaseMapper即可。

1.2 常用注解

  • @TableName:用来指定表名

当在实体类名与数据库名称不一致时,需要使用@TableName指定表名,如果没有注解那么默认是驼峰转下划线的方式定义表名;

  • @TableId:用来指定表中的主键字段信息

这个注解是用来指定表中的主键字段信息的,还可以定义除了名称外的其他参数,比如type:idType枚举,AUTO表示数据库自增长,INPUT表示通过set方法自行输入.....

  • @TableField:用来指定表中的普遍字段信息

这个主键是指定普通字段信息,当成员变量名与数据库字段不一致那么需要使用该注解进行修正,当成员变量名以is开头,并且是布尔类型的,那么默认在数据库中会将is去掉,所以我们也需要加上该注解,当成员变量名与数据库关键字冲突时,需要使用转义字符例如"`order`",当成员变量不是数据库中的字段也需要使用。

这里需要注意如果主键id为自增,那么需要指定自增类型(type= IdType.AUTO),否则默认是雪花算法生成的。

1.3 常用配置

二.核心功能

2.1 条件构造器

2.1.1 基于QueryWrapper的查询

我们平时写的sql,就算是增删改查,但是也常涉及到条件判断,所以简单自带的sql可能无法满足我们的需求,所以我们就需要使用条件构造器。

这就是一个查询对应字段,条件为名字有带"o",且账户余额大于等于1000的用户。

接下来再写一个更新语句,更新"jack"的账户余额为2000。

2.1.2 基于UpdateWrapper的更新

有一个需求为更新用户id为1,2,4的用户账户余额扣200,我们需要怎么做,在上方因为是只需要变更一个用户的,所以我们直接set进对象。

如果正常写sql,应该是这样的 update user blance = blance-200 where id in(1,2,4)

接下来我们看看使用条件构造器如何编写。

但是我们可以看到如上方QueryWrapper的查询语句,我们的字段都是写死的,这样会导致硬编码,为了避免硬编码,尽量使用LambadQueryWrapper和LambadUpdateWrapper。

 2.2 自定义SQL

这里的自定义SQL是什么意思呢?

mp不是帮我们构建好了SQL吗?

在企业编码规范中,在业务层编写sql是不被允许的,那么我们就需要使用自定义SQL。

我们可以利用mp的wrapper来构建复杂的where条件,然后自定义SQL语句中剩下的部分。

接下来我们就来看看写法。

2.3 Service接口

自定义的接口可以继承Service接口,其中有许多增删改查的方法,但是继承了Service接口后,对应的实现类也需要继承ServiceImpl,这里面就是Service方法的实现。

接下来让我们来看看使用IService接口开发一些业务接口。

下面是对应的实现

我们也可以到对应简单的业务我们甚至都只需要编写controller里的代码即可,但是实际的开发也是都这么简单的业务的,对应比较复杂的业务就需要我们自定义sql,比如这里的第五个接口:扣减用户余额我们需要先根据id来找到对应的用户,再查看其状态是否可用,最后判断其余额是否充足才能进行扣减。

接下来我们来看看IService的Lambda方法。

需求是这样的:实现一个根据复杂条件查询用户的接口,查询条件如下

  • name:用户名关键字,可以为空
  • status:用户状态,可以为空
  • minBalance:最小余额,可以为空
  • maxBalance:最大余额,可以为空

我们用Mybatis写sql的时候应该是这样写的

接下来就看看使用IService的Lambda方法如何编写。

除了查询,Lambda还提供了更新方法。

需求为:改造根据id修改用户余额的接口,要求为,完成用户状态校验,完成用户余额校验,如果扣减后余额为0,则用户status修改为冻结状态(2)。

看这个我们可以发现这与我们之前写的更新很像,无法是加入了用户状态的修改,让我们看看之前的写法。

这里我们使用Lambda的更新方法改造一下。

这样就实现了我们的需求了。

至于MyBatisPlus的扩展功能和插件功能有兴趣的可以去看看b站黑马的MybatisPlus课程。

自我感觉使用MybatisPlus有一定程度上,让代码变得混乱,所以我还是比较偏向于继续使用myabtis。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 如果你想要入门 MyBatis-Plus,可以按照以下步骤进行: 1. 首先,你需要在你的项目中引入 MyBatis-Plus 的依赖。可以在你的项目的 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 请确保将最新版本号替换为你想要使用的 MyBatis-Plus 版本号。 2. 然后,你需要配置 MyBatis-Plus。你可以在你的项目中创建一个 MyBatisPlusConfig 类,并在该类中注册一些必要的 Bean。例如,如果你想要使用乐观锁插件,你可以在 MyBatisPlusConfig 类中注册一个 OptimisticLockerInterceptor 的 Bean,如下所示: ```java @Configuration public class MyBatisPlusConfig { @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } } ``` 这样就完成了乐观锁插件的注册。 3. 最后,你需要在 MyBatis 的配置文件中配置 MyBatis-Plus 的一些属性。例如,如果你想要在控制台输出 MyBatis-Plus 的日志,你可以在配置文件中添加以下配置: ``` mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 这样就完成了 MyBatis-Plus 的入门配置。 总结起来,要入门 MyBatis-Plus,你需要引入依赖、配置 MyBatisPlusConfig 类和配置 MyBatis-Plus 的属性。这样就可以开始使用 MyBatis-Plus 来简化开发和提高效率了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MybatisPlus入门教程](https://blog.csdn.net/qq_44732432/article/details/129221273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子健变于晏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值