Spring boot 与 MybatisPlus 集成使用与拓展(来自凌晨二点得学习整理笔记 :一)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

  • 在实体类中加入version字段:

  • 添加后得结果:

  • 乐观锁配置:

  • 测试类编写:

  • 五、查询操作:

  • 根据ID 查询某位用户得信息:

  • 根据ID查询多为用户得信息,封装为List

  • 根据条件查询用户信息,封装为Map

  • 六、分页查询:

  • 本次学习使用 Mp内置得分页插件:

            • 七、删除操作:
  • 逻辑删除操作学习:

  • 逻辑删除操作步骤:

一、概述:

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

  • 特性:

无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作

支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )

内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库

内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

二、创建Spring boot项目集成MP 常用方法
①:配置依赖文件:

===================================================================

spring.datasource.driver-class- name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/mydb_test?useSSL=true&useUnicode=true&serverTimezone=UTC&characterEncoding=utf-8

spring.datasource.username=

spring.datasource.password=

#配置日志

mybatis-plus.configuration.log- impl=org.apache.ibatis.logging.stdout.StdOutImpl

说明:配置日志功能是为了在控制台显示出执行了哪些SQL 语句。(正式开发中一般时不配置得。。。)

②:在pom.xml 文件内加入所需要得依赖。

mysql

mysql-connector-java

8.0.22

org.projectlombok

lombok

1.18.2

provided

com.alibaba

fastjson

1.2.13

io.springfox

springfox-swagger2

2.7.0

io.springfox

springfox-swagger-ui

2.7.0

com.baomidou

mybatis-plus-boot-starter

3.0.5

③:创建实体类

===================================================================

===================================================================

在这里插入图片描述

④:创建dao层并继承实体类包:

在这里插入图片描述

⑤:测试常用方法
一、查询功能:

@SpringBootTest

class SpringbootStudyApplicationTests {

@Autowired

private UserMapper userMapper;

@Test

void contextLoads() {

//查询全部用户

List list = userMapper.selectList(null);

list.forEach(System.out::println);

}

二、插入功能并实现主键自增:

注意点:

1、需要在数据库中开启主键自增

2、在对应数据中ID得实体类得主键加上注解:

@TableId(type = IdType.AUTO) //自增主键ID

//测试自动插入

@Test

public void InsertTest(){

User user = new User();

user.setName(“志强学Spring”);

user.setAge(1);

user.setEmail(“2294506817@qq.com”);

user.setCreate_time(new Date());

int result = userMapper.insert(user);

if (result >0){

System.out.println(“插入成功!”);

}

System.out.println(user);

}

在这里插入图片描述

查询数据库显示:

在这里插入图片描述

三、更新操作并实现时间自动填充功能:

①:在数据库加入创建时间、更新时间字段

②:在Java实体类中加入上面两个字段(类型为:java.util.Date)

③:加上注解:

在这里插入图片描述

④:编写处理器处理上面两个注解:’

注解:@Slf4j

@Component

在这里插入图片描述

四、乐观锁使用(拓展):

在这里插入图片描述

在数据库和内添加version字段:

sql 方式添加字段:

alter table user add version int;

为字段添加默认值:

ALTER TABLE user ADD versin int DEFAULT 1 COMMENT ‘版本号’;

在实体类中加入version字段:

在这里插入图片描述

添加后得结果:

在这里插入图片描述

乐观锁配置:

在这里插入图片描述

测试类编写:

/**

  • 乐观锁测试

*/

@Test

public void versionTest(){

User user = userMapper.selectById(11L);

user.setName(“奔驰得小野马”);

user.setAge(8);

user.setEmail(“20878026333@qq.com”);

userMapper.updateById(user);

}

更新完成之后发现版本变为2 了。。。

在这里插入图片描述

五、查询操作:
根据ID 查询某位用户得信息:

在这里插入图片描述

根据ID查询多为用户得信息,封装为List

测试案例:

@Test

public void QueryIdBy2(){

List list = userMapper.selectBatchIds(Arrays.asList(1L,2L,3L,4L,5L));

for (User user : list) {

System.out.println(user);

}

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

[外链图片转存中…(img-RjjSvWNU-1713571155846)]

[外链图片转存中…(img-Rsd3KAPg-1713571155846)]

[外链图片转存中…(img-qZNQ6BBP-1713571155846)]

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-mjT2Rsqf-1713571155847)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值