IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> (尚硅谷)Mybatis-Plus笔记(上) -> 正文阅读

[Java知识库](尚硅谷)Mybatis-Plus笔记(上)

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剩余的部分学完。

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:41:29  更:2022-02-06 13:43:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:32:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码