(尚硅谷)Mybatis-Plus笔记(上)

本文介绍了Mybatis-Plus的入门,它是Mybatis的增强工具,简化了开发过程。通过创建数据库、表并添加数据,然后在IDEA中搭建项目,引入Mybatis-Plus依赖。重点讲解了实体类、接口的创建,以及如何避免XML文件编写SQL。还涉及到了Mybatis-Plus的主键生成策略,包括自增、UUID等,并演示了自动填充创建时间和修改时间的功能,以及乐观锁的概念和防止丢失更新的重要性。
摘要由CSDN通过智能技术生成

Mybatis-Plus

我们之前学过了Mybatis框架,但是实际开发中,以及在网上去学一些项目的时候,经常会使用到mybatis-plus,所以这个还是在大学期间必须要学的一个知识点。我们会使用就可以,经常能用到。

入门

对mybatis做增强,简化开发。

1.创建数据库,创建数据库表,添加数据,用于Mybatis-Plus操作。

 

数据库表我们建完后,我们去添加表中的数据:

 

我们使用Idea创建项目:

 

我们先不用去加任何的依赖直接创建完就可以。

然后我们要在idea项目中引入mybatis-plus相关的依赖:

这部分我们去官网看教程,直接把教程中的复制粘贴下来就可以了。

我们使用了lombok别忘了安装插件:
 

然后我们去配置一些信息:
 

我们现在对于mybatis-plus我们的准备工作就结束了,接下来就是我们的具体代码部分的编写了:

首先建立实体类
 

 然后编写接口:

 我们使用mybatis-plus,我们就不需要去写之前学mybatis的时候需要去写的编写sql语句的xml文件了,只需要继承这个类就可以了。

但是我们之前写的接口都是有一个实现类的,但是我们使用mybatis-plus就没有实现类,那我们的启动类可能找不到它,我们需要自己去给启动类增加注释:

我们使用MapperScan去扫描包名。

然后我们现在去测试一下它能不能用:

 

我们想测试查询全部数据,但是我们引入接口就报红线了。但是这个红线我们不去处理,也可以正常运行,它说是找不到这个bean,所以我们在接口上加一个注释:

 

这部分可以使用repository注解解决红线问题。

 

运行:

 

我们就查询到数据了,我们使用mybatis-plus当处理简单的数据库功能时,我们可以减少大量的代码,直接调用继承了BaseMapper的接口的方法就可以了。

MybatisPlus添加操作 

我们的效果已经出来了,现在我们去给上日志文件:

再重新运行一下,我们使用日志,就是打印更加详细的信息:

 

然后我们去做一下添加的操作:

 

 

我们这里的添加特点为:

不需要设置id值(主键), mp自动生成id值,id值为19位。

主键生成策略 

我们之前是依靠mp自动给我们生成一个19位很长的主键id值,但是我们还有其他的方式生成主键,我们这里就来学习生成主键的策略。

我们这部分可以参照一个网上别人写的文章,讲的比较好:

分布式系统唯一ID生成方案汇总 - nick hao - 博客园

第一种常见的策略是使用自增:

第二种常见的方法是UUID:

 

第三种方式是使用redis实现 

最后一种是咱们的mp自带的策略,它是一种雪花算法,可以上网查查了解一下,这里就不去过多学习这个算法了。

 我们之前的代码,我们什么都没有去做,是自动使用的mp自带的策略,我们这里去改写,去在代码中使用自动自增的方式:

这里有很多方法,auto是自增 input自己设置Id值,none无任何策略  ASSIGN_UUID:uuid的方式,随机唯一值

MybatisPlus实现自动填充

我们前面使用过了查询所有和添加操作,我们现在要去学习一下修改操作:

我们去修改jack的年龄:

 

我们去运行一下看看:

 

 

这个修改是很好实现的。

接下来我们要学习一个比较难的问题了:就是自动填充。

 我们先去添加两个字段:

create_time update_time:

我们既然添加了字段,也要对应的添加实体类的属性:

 

我们经常会使用这种命名形式。

我们去添加一个带日期的数据:

 

 

我们这种使用new Date的方式是可以的,但是当然mybatisplus也提供了自己的方式:

这就是我们要学的自动填充的方法:

我们以后要去添加属性值的时候,不需要set到对象里面值,使用mp形式实现数据添加

第一步:在实体类里面进行自动填充属性添加注解

 

第二步:创建类实现接口MetaObjectHandler 实现接口里面的方法

 

我们使用这个类之后,以后就不需要去再set方式添加值了。

这个使用与否全屏个人,如果觉得set方便,也可以不使用这个。

我们用这种方法去添加一个时间看看是否有效:

 

测试结果:

 

我们再去试试修改成功与否:

 我们修改刚才的记录:

我们可以看到我们的创建时间没变,修改时间发生了变化。

mybatisplus实现乐观锁(1) 

 

这个图就很容易理解丢失更新的概念了,本来lucy的工资应该是8000但是由于mary改动后成了200出现了问题。

多个人同时修改同一条记录,最后提交的把之前提交的数据覆盖。

我们解决这个问题一般有两种方式:

悲观锁 串行 它是指只要lucy完成全部任务,mary才可以开始执行它的操作 这明显是不太好的

乐观锁:

 

我们下次笔记就把乐观锁进行代码上的使用,下次笔记会把mybatisplus剩余的部分学完。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值