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

本文介绍了如何使用Springfox生成Swagger文档,以及在SpringBoot项目中集成MyBatis-Plus进行数据库操作,包括实体类创建、DAO层设计、CRUD操作(查询、插入、更新、删除)、乐观锁应用和分页查询示例。
摘要由CSDN通过智能技术生成

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);

}

  • 返回信息:

在这里插入图片描述

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

/**

  • 根据Map查询多位用户得信息

*/

@Test

public void MapselectBatchIds(){

HashMap<String, Object> map = new HashMap<>();

map.put(“name”,“贺老师”);

List Users = userMapper.selectByMap(map);

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

}

  • 返回信息:

在这里插入图片描述

六、分页查询:

分页在网站使用得场景很多:

  • 1、原始得limit 进行分页

  • 2、pageHelper第三方插件

  • 3、Mp其实内置了分页插件

本次学习使用 Mp内置得分页插件:
  • 配置拦截器代码:

在这里插入图片描述

  • 测试案例:

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

/**

  • 分页查询

*/

@Test

public void PageTest(){

Page page = new Page<>(0,5);

userMapper.selectPage(page,null);

page.getRecords().forEach(System.out::println);

System.out.println(page.getTotal());

}

  • 返回结果

在这里插入图片描述

七、删除操作:

/**

  • 删除操作

*/

@Test

public void DeleteTest(){

userMapper.deleteById(10L);

}

注意点:传入得值时注意后面得L字符,因为实体类中id类型为Long类型得。

在这里插入图片描述

②:批量删除

/**

  • 根据id 批量删除用户!!

*/

@Test

public void DeleteTest2(){

int i = userMapper.deleteBatchIds(Arrays.asList(7L, 5L));

System.out.println(“删除成功!!”+i);

}

在这里插入图片描述

逻辑删除操作学习:
  • 物理删除:直接从数据库中删除。

  • 逻辑删除:在数据库中没有被移除,而是通过一个变量让某条记录失效。

逻辑删除操作步骤:

1、在数据库表中增加deleted标记字段,并设置默认值为0。

在这里插入图片描述

2、在实体类中加入数据库字段。(integer类型)

@TableLogic //此注解代表逻辑删除

private Integer deleted;

3、逻辑删除插件配置(配置类中加入)

@Bean

public ISqlInjector sqlInjector() {

return new LogicSqlInjector();

}

4、在application.yml 中加入如下

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
a工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

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

[外链图片转存中…(img-nAVkkrvC-1714957917336)]

[外链图片转存中…(img-5fdrV4AI-1714957917337)]

[外链图片转存中…(img-tQsW1Cgb-1714957917337)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值