01MyBatisPlus入门案例,常见注解,常用配置

news/2024/12/22 23:48:47/

一、入门案例

需求:基于课前资料提供的项目,实现下列功能:

  • 新增用户功能
  • 根据id查询用户
  • 根据id批量查询用户
  • 根据id更新用户
  • 根据id删除用户

1.引入MybatisPlus的起步依赖

MybatisPlus官方提供的starter,其中集成了MybatisMybatisPlus的所有功能。实现自动装配效果。

<!--MybatisPlus-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version>
</dependency>

2.自定义Mapper继承BaseMapper<T>接口

自定义Mapper继承MyBatisPlus提供的BaseMapper<T>接口

T泛型是操作的实体类的类型

public interface User2Mapper extends BaseMapper<User> {
}

BaseMapper里面定义了增删改查的方法

3.测试

@SpringBootTest
class UserMapperTest {@Autowiredprivate User2Mapper user2Mapper;@Testvoid testInsert() {User user = new User();user.setId(5L);user.setUsername("Lucy");user.setPassword("123");user.setPhone("18688990011");user.setBalance(200);user.setInfo("{\"age\": 24, \"intro\": \"英文老师\", \"gender\": \"female\"}");user.setCreateTime(LocalDateTime.now());user.setUpdateTime(LocalDateTime.now());user2Mapper.insert(user);}@Testvoid testSelectById() {User user = user2Mapper.selectById(5L);System.out.println("user = " + user);}@Testvoid testQueryByIds() {List list = new ArrayList();list.add(1L);list.add(2L);list.add(3L);List<User> users = user2Mapper.selectBatchIds(list);users.forEach(System.out::println);}@Testvoid testUpdateById() {User user = new User();user.setId(5L);user.setBalance(20000);user2Mapper.updateById(user);}@Testvoid testDeleteUser() {user2Mapper.deleteById(5L);}
}

二、常见注解

1.MybatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表的信息

约定:

类名驼峰转下划线作为表名

②名为id的字段作为主键

变量名驼峰转下划线作为表的字段名

2.MybatisPlus常用的注解(实体类跟数据库表不一致)

①@TableName:用来指定表名

②@TableId:指定表中的主键

③@TableField:指定表中字段

用户表信息如下

 对应的User配置类

3.@TableId的type总结

@TableId(value=”id”,type=IdType.AUTO)

①IdType.AUTO:id自增

②IdType.INPUT:id通过set方法自行输入

③IdType.ASSIGN_ID:随机ID,雪花算法

4.使用@TableField的常见场景

①成员变量名跟数据库字段名不一致

②成员变量名是is开头布尔值(因为mp会把is去掉)

③成员变量名跟数据库关键字冲突

④成员变量不是数据库字段exist=false

三、常用配置

1.MyBatisPlus继承MyBatis的原生配置

①type-aliases-package别名扫描包:PO实体类的包

②mapper-locations扫描mapper.xml文件的

③map-underscore-to-camel-case下划线转驼峰的映射

 2. MyBatisPlus使用的基本流程是什么?

①引入起步依赖

②自定义Mapper继承BaseMapper

③在实体类上添加注解声明表信息

④在application.yml根据需要添加配置


http://www.ppmy.cn/news/1204806.html

相关文章

【OpenCV实现图像:图像处理技巧之空间滤波】

文章目录 概要导入库空间过滤器模板展示效果分析与总结 概要 空间滤波器是数字图像处理中的基本工具之一。它通过在图像的每个像素位置上应用一个特定的滤波模板&#xff0c;根据该位置周围的相邻像素值进行加权操作&#xff0c;从而修改该像素的值。这种加权操作能够突出或模…

RS练习 - PTE(一)

目录 RS 题目练习 请问大学中的研究员到底处于一个什么样的地位&#xff0c;它的晋升通道是什么样的&#xff1f; 介绍一下莎翁笔下的塞壬 介绍一下绘画当中的至上主义派 介绍一下黑格尔的主仆辩证法 介绍一下巴塔耶的“经济学的终结” 介绍一下愿望驱动的力比多经济&am…

Android 使用.9图 NinePatchDrawable实现动态聊天气泡

最近一段时间&#xff0c;在做一个需求&#xff0c;需要实现一个聊天气泡的动画效果&#xff0c;如下图所示&#xff1a; GitHub源码demo &#xff0c;建议下载demo&#xff0c;运行查看。 动态聊天气泡动画 静态聊天气泡 经过一段时间调研&#xff0c;实现方案如下: 实现方…

鸿蒙开发工具DevEco Studio的下载和安装

一、DevEco Studio概述 1、简介 HUAWEI DevEco Studio&#xff08;获取工具请单击链接下载&#xff0c;以下简称DevEco Studio&#xff09;是基于IntelliJ IDEA Community开源版本打造&#xff0c;为运行在HarmonyOS和OpenHarmony系统上的应用和服务&#xff08;以下简称应用…

统计学习笔记 第 5 部分:破碎系数

照片由 Unsplash上的 资源数据库提供 1&#xff1a;背景与动机 正如本系列之前的文章所述&#xff0c;统计学习理论为理解机器学习推理问题提供了一个概率框架。用数学术语来说&#xff0c;统计学习理论的基本目标可以表述为&#xff1a; 图片由作者提供 本文是统计学习理论系…

java的反应式流

Java的反应式流是一种新的编程模型&#xff0c;它在异步和事件驱动的环境下工作。反应式流的目的是为了解决传统的单线程或者多线程编程模型在高并发和大流量情况下的性能瓶颈。 反应式流的核心是Observable和Observer&#xff0c;Observable表示一个数据流&#xff0c;而Obse…

java后端debug排查问题思路

问题排查思路 这里说的是主要是debug以及线上问题排查的思路. 解决问题的步骤 确认环境、确定问题、复现问题、查看日志、定位问题 、解决问题 确认环境/url/参数 确认是哪个环境。 是开发环境&#xff0c;测试环境&#xff0c;还是生产环境。 如果问题是在测试环境&…

工业CT 三维重建 及分割

目录 工业CT介绍 工业CT主要应用于以下领域&#xff1a; CT三维重建软件&#xff1a; 效果&#xff1a; 工业CT介绍 工业CT设备是基于线阵探测器的断层扫描技术&#xff0c;是一种常用的无损检测技术&#xff0c;用于获取物体内部的准确三维结构信息。它通过X射线的投射和接…