学MybatisPlus

news/2024/10/18 6:42:13/

1.设置MySql的数据库

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123
logging:level:com.itheima: debugpattern:dateformat: HH:mm:ss

logging : level : com.itheima 是来设置日志的输出模式,debug可以看到MySql的语句。

依赖:mybatis-plus-boot-starter

2.在Mapper中使用:需要在mapper接口中中使用extends BaseMapper<实体类>(一般是简单的)

3.常见注解,一般是来实体类

  1. @TableName
  2. @TableField
  3. @TableId  (Auto , Input , Assign_id)

4.常见配置

mybatis-plus:type-aliases-package: com.itheima.mp.domain.po //实体类global-config:db-config:id-type: auto # 全局id类型为自增长

MySql的手写:

mybatis-plus:mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,当前这个是默认值。

5.条件构造器(了解)

6.Service的接口:

使用:在Service的接口中extends IService<实体类>,在ServiceImpl中使用implements  Service

extends ServiceImpl<UserMapper,User>.

7.使用lambda,LambdaQuery<实体类>wrapper = new QueryWrapper<User>,可以去指定条件的

for example: .like(username !=null ,User::getUsername,username) 

8.批量新增:

修改项目中的application.yml文件,在jdbc的url后面添加参数&rewriteBatchedStatements=true

速度有非常明显的提升,使用了jdbc的预编译模式。

9.代码生成

使用了MybatisPlus的插件

10.静态工具的使用:为了避免出现循环依赖问题,向IServiceImpl的使用(Db)

11.逻辑删除:

  • 在表中添加一个字段标记数据是否被删除

  • 当删除数据时把标记置为true

  • 查询时过滤掉标记为true的数据

mybatis-plus:global-config:db-config:logic-delete-field: deleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

12.通用枚举

package com.itheima.mp.enums;import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;@Getter
public enum UserStatus {NORMAL(1, "正常"),FREEZE(2, "冻结");private final int value;private final String desc;UserStatus(int value, String desc) {this.value = value;this.desc = desc;}
}

使用@EnumValue来去数据库的数据,@JsonValue来去注解标记JSON序列化时展示的字段

12.JSON类型处理器

使用类处理器:@TableField(typeHandle  = JcaksonTypeHandle.class),要去定义一个实体类,

来去处理json的数据。


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

相关文章

如何使用Optuna在PyTorch中进行超参数优化

所有神经网络在训练过程中都需要选择超参数,而这些超参数对收敛速度和最终性能有着非常显著的影响。 这些超参数需要特别调整,以充分发挥模型的潜力。超参数调优过程是神经网络训练中不可或缺的一部分,某种程度上,它是一个主要基于梯度优化问题中的“无梯度”部分。 在这…

H.264编解码介绍

一、简介 H.264,又称为AVC(Advanced Video Coding),是一种广泛使用的视频压缩标准。它由国际电信联盟(ITU)和国际标准化组织(ISO)联合开发,并于2003年发布。 H.264的发展历史可以追溯到上个世纪90年代。当时,视频压缩技术的主要标准是MPEG-2,但它在压缩率和视频质…

Spring Boot房屋租赁平台:现代化解决方案

1 绪论 1.1 研究背景 中国的科技的不断进步&#xff0c;计算机发展也慢慢的越来越成熟&#xff0c;人们对计算机也是越来越更加的依赖&#xff0c;科研、教育慢慢用于计算机进行管理。从第一台计算机的产生&#xff0c;到现在计算机已经发展到我们无法想象。给我们的生活改变很…

学Java还是c++好?

Java在互联网行业中的应用非常广泛&#xff0c;就业方面&#xff0c;Java岗位较多&#xff0c;就业市场相对稳定&#xff0c;尤其是在Android应用开发、企业级应用、大数据技术等领域有大量的岗位。 Java的语法相对简单&#xff0c;对于初学者来说更容易上手。有很多成熟的框架…

git直接推送项目到仓库

要将您的本地项目推送到新创建的 GitHub 仓库&#xff0c;请按照以下步骤操作&#xff1a; 定位到项目目录&#xff1a; 确保你的命令行或终端当前目录为你的项目根目录。 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09;&#xff1a; git init添加文件到暂存区&#…

獨立IP和共用IP有什麼區別?

什麼是獨立IP&#xff1f; 獨立IP指的是一個IP地址專屬於一個用戶或設備。無論是網站、伺服器還是其他線上服務&#xff0c;獨立IP都意味著該IP地址不會與其他用戶或設備共用。獨立IP通常用於需要高安全性和穩定性的場景&#xff0c;比如企業網站、電子商務平臺和需要SSL證書的…

【计算机网络】数据链路层理解

文章目录 一、引言二、MAC地址三、以太网四、交换机五、ARP与RARP1、ARP2、RARP 一、引言 数据链路&#xff0c;有时也指以太网、无线局域网等通信手段。数据链路层的协议定义了通过通信媒介互联的设备之间传输的规定。通信媒介包括双绞线电缆、同轴电缆、光纤、点播以及红外线…

《More Effective C++》的学习

引用与指针 没有所谓的null reference reference一定需要代表某个对象&#xff0c;所以C要求reference必须有初值。 QString &s; 使用reference可能比使用pointer更高效。 因为reference一定是有效的&#xff0c;而指针可能为空&#xff08;需要多加一个判断&#xff0…