| |
|
开发:
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剩余的部分学完。 ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |