当前位置: 首页 > news >正文

【MyBatisPlus】快速入门、常用注解、常用配置


在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


MyBatisPlus

  • 一、快速入门
    • 1.1 引入MyBatisPlus起步依赖
    • 1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口
    • 1.3 对比Mybatis
    • 1.4 MyBatisPlus的增删改查方法
  • 二、MyBatisPlus常用注解
    • 2.1 MyBatisPlus常用注解如下
  • 三、MyBatisPlus常用配置

一、快速入门

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

1.1 引入MyBatisPlus起步依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>

1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口

public interface UserMapper extends BaseMapper<User> {
}

1.3 对比Mybatis

  • 要操作的数据库表结构:
create table user
(id      int not null primary key,account int null
);
  • Mybatis的UserMapper.java:
public interface UserMapper {int insert(User row);int insertSelective(User row);User selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(User row);int updateByPrimaryKey(User row);
}
  • Mybatis的UserMapper .xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.demo.po.User"></resultMap><sql id="Base_Column_List">id, account</sql><select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">select <include refid="Base_Column_List" />from userwhere id = #{id,jdbcType=INTEGER}</select><insert id="insert" parameterType="com.demo.po.User">insert into user (id, account)values (#{id,jdbcType=INTEGER}, #{account,jdbcType=INTEGER})</insert><insert id="insertSelective" parameterType="com.demo.po.User">insert into user<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null">id,</if><if test="account != null">account,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="id != null">#{id,jdbcType=INTEGER},</if><if test="account != null">#{account,jdbcType=INTEGER},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="com.demo.po.User">update user<set><if test="account != null">account = #{account,jdbcType=INTEGER},</if></set>where id = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="com.demo.po.User">update userset account = #{account,jdbcType=INTEGER}where id = #{id,jdbcType=INTEGER}</update>
</mapper>
  • MyBatisPlus只需UserMapper.java继承 BaseMapper<>即可:
public interface UserMapper extends BaseMapper<User> {
}

1.4 MyBatisPlus的增删改查方法

@SpringBootTest
class DemoApplicationTests {@Autowiredprivate UserMapper userMapper;@Testvoid testInsert() {User user = new User();user.setId(5);user.setAccount(2000);userMapper.insert(user);}@Testvoid testSelectById() {User user = userMapper.selectById(5);System.out.println(user);}@Testvoid testUpdateById() {User user = new User();user.setId(5);user.setAccount(8000);userMapper.updateById(user);}@Testvoid testDeleteById() {userMapper.deleteById(5);}}

二、MyBatisPlus常用注解

MyBatisPlus:通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

  • 类名驼峰转下划线作为表名
  • 名为id的字段作为主键
  • 变量名驼峰转下划线作为表的字段名

2.1 MyBatisPlus常用注解如下

  • @TableName:用来指定表名
  • @TableId:用来指定表中的主键字段信息
  • @TableFiled:用来指定表中的普通字段信息

MyBatisPlus官网:https://www.baomidou.com/pages/223848/#tablename


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


三、MyBatisPlus常用配置

MyBatisPlus中的配置大都是默认配置好的,我们使用的时候基本不用修改大量的配置,除非遇到特殊的情况需要设置一些配置,可以参考MyBatisPlus的官方文档进行修改。

mybatis-plus:type-aliases-package: com.demo.pomapper-locations: classpath*:mapper/**/*.xml  # 默认global-config:db-config:id-type: auto # id类型自增长

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


相关文章:

【MyBatisPlus】快速入门、常用注解、常用配置

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 MyBatisPlus 一、快速入门1.1 引入MyBatisP…...

【USRP】通信之:光通信

光通信: 光通信是使用光信号&#xff08;通常是红外或可见光信号&#xff09;在光纤或空气中传输信息的技术。由于光信号的特性&#xff0c;光通信具有非常高的数据传输率和长距离传输能力。以下是光通信的一些关键组件和概念&#xff1a; 光纤&#xff1a; 是由非常纯净的玻璃…...

bpf对内核的观测

目录 1 bpftrace常用命令1.1 列出bpftrace 相关命令的list1. 2bpftrace -e 是执行1.3 查看参数 -lv 2 bpftrace 可以用到的变量3 高级3.1 内置函数3.2 文件系统3.3 内核内存 栈3.4 Malloc 调用 统计3.5 系统调用 brk 的 统计3.6 脚本调用 4 应用5 怎么串联起来呢 bpftrace 总的…...

Tiktok shop api 调试

记录一下调试Tiktok shop api 踩坑记录。 主要是在按官网api上规则和加密生成sign时候一直通不过的问题&#xff1a; 官网地址&#xff1a;https://partner.tiktokshop.com/doc/page/63fd743e715d622a338c4eab 直接贴代码了 import lombok.extern.slf4j.Slf4j;import javax.cr…...

QFSFileEngine::open: No file name specified解决方案

问题 使用QFile类进行文件操作时&#xff0c;报错QFSFileEngine::open: No file name specified。 原因 QFile::open: No file name specified是Qt中的一个错误消息&#xff0c;提示没有指定文件名导致文件无法打开。这个错误通常出现在使用QFile::open()函数时没有提供有效…...

Flappy bird项目

一、功能分析 1、小鸟自动向右滑行 2、按下空格小鸟上升&#xff0c;不按下落 3、显示小鸟需要穿过的管道 4、管道自动左移和创建 5、小鸟和管道碰撞&#xff0c;游戏结束 6、技术 7、 项目框图 8、Ncurses 1&#xff09;创建窗口界面&#xff0c;移动光标&#xff0c;产…...

高校教务系统登录页面JS分析——西安科技大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…...

Mysql 事务的实现原理

Mysql 里面的事务&#xff0c;满足 ACID 特性&#xff0c;所以Mysql 的事务实现原理&#xff0c;就是InnoDB 是如何保证 ACID 特性的。 ACID A 表示 Atomic 原子性&#xff0c;也就是需要保证多个 DML 操作是原子的&#xff0c;要么都成功&#xff0c;要么都失败。那么&#xf…...

使用vscode搭建虚拟机

首先vscode插件安装 名称: Remote - SSH ID: ms-vscode-remote.remote-ssh 说明: Open any folder on a remote machine using SSH and take advantage of VS Codes full feature set. 版本: 0.51.0 VS Marketplace 链接: https://marketplace.visualstudio.com/items?it…...

C# 使用 LibUsbDotNet 实现 USB 设备检测

国庆节回来后的工作内容&#xff0c;基本都在围绕着各种各样的硬件展开&#xff0c;这无疑让本就漫长的 “七天班” &#xff0c;更加平添了三分枯燥&#xff0c;我甚至在不知不觉中学会了&#xff0c;如何给打印机装上不同尺寸的纸张。华为的 Mate 60 发布以后&#xff0c;人群…...

系统安全分析与设计

系统安全分析与设计&#xff08;2分&#xff09; 内容提要 对称加密与非对称加密 加密技术与认证技术 加密技术&#xff08;只能防止第三方窃听&#xff09; 讲解地址&#xff1a;对称加密与非对称加密_哔哩哔哩_bilibili 认证技术 骚戴理解&#xff1a;数字签名是用私钥签名…...

UE4 AI群集实现

逻辑就不用说了&#xff0c;就是计算对应图形位置让每个Pawn移动到该位置 因为有时候AI与AI会卡住 所以加上这个Bool为true&#xff0c;以及设置两个AI之间至少隔的距离&#xff0c;设置在一个合理的参数即可 有时候AI群集&#xff0c;AI与AI会比较紧密&#xff0c;可以将Caps…...

机器学习---CNN(创建和训练一个卷积神经网络并评估其性能)下

import numpy as np import matplotlib.pyplot as plt from cnn_operations import cnn_operations as cnn_opr convolutional_neural_network模块&#xff1a; 1. 卷积神经网络类 def __init__(self):# 网络的层数self.n_layers 0# list&#xff0c;网络中的各层self.layers…...

2021-arxiv-Prefix-Tuning- Optimizing Continuous Prompts for Generation

2021-arxiv-Prefix-Tuning- Optimizing Continuous Prompts for Generation Paper&#xff1a;https://arxiv.org/pdf/2101.00190.pdf Code&#xff1a;https://github.com/XiangLi1999/PrefixTuning 前缀调优&#xff1a;优化生成的连续提示 prefix-tunning 的基本思想也是想…...

使用CMakeLists.txt简化项目构建过程

在软件开发过程中&#xff0c;项目的构建是一个不可避免的环节。而随着项目规模的增大&#xff0c;手动管理编译过程变得越来越繁琐。为了简化构建流程并实现跨平台支持&#xff0c;CMake作为一种流行的构建系统被广泛采用。本文将介绍CMakeLists.txt文件的结构&#xff0c;以及…...

构建并训练简单的CNN

1. 构建并训练深度神经网络模型 1.1 准备数据集 本次使用自己生成的一些数据,如下生成代码: # 准备数据集 # 此处自己生成一些原始的数据点 dataset_X=np.linspace(-10,10,100) dataset_y=2*np.square(dataset_X)+7...

Axi_Lite接口的IP核与地址与缓冲与AxiGP0

AXI Interconnect互连内核将一个或多个 AXI 内存映射主设备连接到一个或多个内存映射从设备。 AXI_GP 接口 AXI_GP 接口是直接连接主机互联和从机互联的端口的。 AXI_HP 接口具有一个 1kB 的数据 FIFO 来做缓冲 [4]&#xff0c;但是 AXI_GP 接口与它不同&#xff0c;没…...

maven以及配置

oss oss配置 <!--oss--> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.6.0</version></dependency> lombok <!--lombok--><dependency><gro…...

系统可靠性分析与设计

系统可靠性分析与设计 内容提要 可靠性相关概念 骚戴理解&#xff1a;计算机系统的可靠性和可用性不是完全相同的概念&#xff0c;尽管它们在某些方面有重叠之处。 可靠性指的是计算机系统在特定时间段内正常运行的能力&#xff0c;即系统在面对各种故障或意外情况时能够继续…...

热点不热!如何修复笔记本电脑未连接到移动热点的问题

当你远离常规Wi-Fi时,移动热点是让你的笔记本电脑上网的关键,但当它没有按计划运行时,你会怎么办?以下是Windows笔记本电脑无法连接到移动热点时的几种修复方法。 为什么我的笔记本电脑没有连接到我的热点 由于你的笔记本电脑正试图连接到另一个有限制和可能存在问题的设…...

【11月16日-大模型前置知识【深度学习】+大模型开发入门】-基础篇笔记

文章目录前言一、huggingface国内1.引入库2.LLM 大模型语言的基础知识&#xff1a;2.LLM主要类别架构介绍3.卷积神经网络CNN4.循环神经网络总结全文通俗总结一、入门工具&#xff1a;Hugging Face二、LLM底层核心&#xff1a;语言模型的进化三、主流LLM架构大盘点四、深度学习基…...

深入 Hadoop 高可用:Leader、Follower 、Observer」角色详解

在 Hadoop 高可用&#xff08;HA&#xff09;架构中&#xff0c;Leader 选举是保障集群稳定的核心机制 —— 我们常听说 Leader&#xff08;主节点&#xff09;和 Follower&#xff08;从节点&#xff09;&#xff0c;但很少有人深入聊第三种关键角色&#xff1a;Observer&…...

鸿蒙游戏是不是风口?

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

【技术前沿】大模型驱动的无损数据压缩:突破传统极限的新范式

1. 大模型如何重新定义数据压缩的极限 十年前我第一次接触数据压缩技术时&#xff0c;被那些复杂的数学公式和编码规则搞得晕头转向。当时使用的还是基于香农信息论的传统方法&#xff0c;虽然效果不错&#xff0c;但总觉得遇到了某种看不见的天花板。直到最近看到LMCompress这…...

Quartus文件格式全解析:从Verilog到编程文件的完整指南

1. Quartus文件体系全景概览 第一次打开Quartus工程目录时&#xff0c;看到几十种不同后缀的文件是不是有点懵&#xff1f;这就像刚搬进新家面对一堆未拆封的纸箱&#xff0c;需要先搞清楚每个箱子里装的是什么。作为FPGA开发的"集装箱"&#xff0c;Quartus文件可以分…...

DDR5内存实战:如何优化读操作性能(附BL32模式配置指南)

DDR5内存实战&#xff1a;如何优化读操作性能&#xff08;附BL32模式配置指南&#xff09; 在服务器和高性能计算领域&#xff0c;内存子系统的性能调优往往是工程师们最关注的焦点之一。随着DDR5内存的普及&#xff0c;其更高的带宽和更低的功耗为系统性能带来了显著提升&…...

CANoe离线回放与Trace回放:场景选择与实战配置全解析

1. CANoe回放功能概述&#xff1a;从数据文件到场景复现 第一次接触CANoe的回放功能时&#xff0c;我完全被各种专业术语搞晕了。直到有一次需要复现一个偶发的总线故障&#xff0c;才发现这个功能简直是汽车电子测试工程师的"时光机"。简单来说&#xff0c;CANoe的离…...

ESLyric-LyricsSource:解锁Foobar2000高级逐字歌词的完整指南

ESLyric-LyricsSource&#xff1a;解锁Foobar2000高级逐字歌词的完整指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 你是否曾经在使用Foobar2000时&…...

别再只盯着MSE了!图像配准效果好不好,这5个评价指标你用过几个?

图像配准效果评估&#xff1a;超越MSE的五大核心指标实战指南 在医学影像分析和计算机视觉领域&#xff0c;图像配准技术如同一位精准的"空间协调师"&#xff0c;将不同时间、不同视角或不同设备获取的图像对齐到同一坐标系。但如何判断这位"协调师"的工作…...

JW Player插件开发教程:如何快速扩展播放器功能

JW Player插件开发教程&#xff1a;如何快速扩展播放器功能 【免费下载链接】jwplayer No Longer Maintained 项目地址: https://gitcode.com/gh_mirrors/jw/jwplayer JW Player是一款功能强大的开源媒体播放器&#xff0c;通过插件系统可以轻松扩展其功能。本文将带你快…...