Mybatis-Plus
新建个项目
引入lombok devtools web mysql驱动
pom.xml引入mybatis-plus依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mydb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true spring.datasource.username=root spring.datasource.password=123456#指定实体包名 mybatis-plus.type-aliases-package=com.example.mybatisplus.pojo #指定.xml路径 mybatis-plus.mapper-locations=classpath:/mapper/*.xml #开启驼峰命名 mybatis-plus.configuration.map-underscore-to-camel-case=true#Spring 框架自带的日志框架(Spring Framework Logging) logging.level.com.example.mybatisplus=debug
参数的解释:
serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
是 MySQL 数据库连接字符串中的一组参数,用于指定连接 MySQL 数据库时使用的时区、字符编码、是否启用自动重连、是否允许多个查询等选项。具体含义如下:
serverTimezone=GMT%2B8
:指定 MySQL 服务器所在时区为 GMT+8,即东八区。如果不指定该参数,可能会导致与数据库的时间相关操作出现错误。useUnicode=true
:指定连接时使用 Unicode 字符编码。这样可以确保在传输和处理字符数据时不会出现乱码问题。characterEncoding=utf8
:指定字符编码为 UTF-8。UTF-8 是一种通用的字符编码方式,支持多种语言和字符集,可以确保在处理不同语言的字符数据时不会出现乱码问题。autoReconnect=true
:指定在连接中断时自动尝试重新连接到 MySQL 数据库。这样可以确保在数据库出现连接异常或断开连接时,应用程序可以自动重连并继续工作。allowMultiQueries=true
:指定是否允许在一条 SQL 语句中执行多个查询。这样可以减少应用程序与数据库之间的网络通信次数,提高查询效率。但同时也存在一定的安全风险,可能会导致 SQL 注入等问题。
这些参数可以在 MySQL 数据库连接字符串中按照 URL 参数的方式进行指定,以 key=value
的形式出现,并使用 &
进行分隔。
注意:useAffectedRows=true 看情况配置
useAffectedRows=true
是 MySQL JDBC 驱动程序的一个配置参数,用于指定在执行 UPDATE、INSERT、DELETE 等更新操作时,返回的是受影响的行数还是匹配的行数。具体含义如下:
- 当
useAffectedRows=false
(默认值)时,返回的是匹配的行数,即查询条件匹配的所有记录的总数。 - 当
useAffectedRows=true
时,返回的是受影响的行数,即执行更新操作后,实际受到影响的记录的总数。
在一般情况下,应该使用默认值 false
。但在某些特殊情况下,可能需要使用 true
,比如当更新操作可能影响多个表或多个行时,或者在分布式系统中使用乐观锁时。
新建个库用于测试
新建张用户表用于测试 主键自增
插入几条数据
insert into t_user values(null,'哈哈','123','2022-03-04'),(null,'呵呵','123','2022-05-06')
注意扫描的mapper文件路径和你自己的对应
mybatis-plus依赖是包含mybatis的
先加几个类
以上是用Mybatis实现的一些基本增删改查(苛刻一点讲,不够标准化),部分需要用postman测试
下面测试用Mybatis-plus
这个BaseMapper里所有方法都可以直接使用
这个时候需要注意一点,直接这样查会报错
实体类和数据库表名不一样 加个@TableName 假如你表名和数据库一样,不加也行 不用怀疑 测试过
列名因为在application.properties里配置了自动转驼峰 因此没有问题,假如说,我application.properties里将自动转驼峰去掉
查询时候居然也可以 本以为可以用下@Column注解
测试时候发现会自动转驼峰 只要不设置为false 如果设置为false列名不同报错
但是如果不设置自动转驼峰,也可以自动转 可能是版本原因 毕竟配置相关能免则免了
mybatis-plus.configuration.map-underscore-to-camel-case=false
试下插入方法
报错了,看样子
很明显这个值超过了int最大值 改成bigint
实体类id 改成Long
这里还是没有用@Column注解 照样可以插入 看样子配置了自动转驼峰,即使不配置,只要转驼峰不是false,都用不着@Column了 这个还是看具体版本
注意下面,我没在实体类上加其他注解,光加了个@TableName("t_user")来做表映射
可以看出,Mybatis-plus插入时候默认用了雪花算法,而且自动生成了主键(主键是插入前就自动生成了,就是说不添加@TableId 是默认用雪花算法,生成之后插入,而用了@TableId(type=Idtype.AUTO)则会递增之后返回),而且我们也不需要再额外去配置返回主键了(这个很重要,自己感觉很重要,记得有次看源码debug到雪花算法是插入前生成的,那么输出user时候id有值是正常的,但是加了@TableId(type=Idtype.AUTO)是根据插入之后数据库生成的id值来进行主键返回的) 不知道对不对 猜的
下面关于@TableId注解,用来设置生成主键的策略
新建张表 注意id自增递增
mybatis-plus如果没有指定@TableId生成策略的话,默认用的雪花算法,为什么叫雪花算法我也不知道,记得N年前老师这么教的.........雪花好记
其他的哪些主键生成策略,可以自己尝试,UUID那很明显了不是
这里我故意将userName 随便改了下
驼峰不行了 这个时候用@TableField 别用@Column.......用一次报错一次.
当然此时测试时候前端传过来的时usersname 这样即使胡乱写 不是驼峰 也可以转换 但是没必要,没人这么无聊吧......知道就好,驼峰照开, 如果真的某种情况下,不想用驼峰对照,那么用
@TableField来对应字段即可 我这边还是改回userName 不然怪怪的
改日继续
相关文章:

Mybatis-Plus
新建个项目 引入lombok devtools web mysql驱动 pom.xml引入mybatis-plus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency> sp…...

yolov8行人识别教程(2023年毕业设计+源码)
yolov8识别视频直接上YOLOv8的结构图吧,小伙伴们可以直接和YOLOv5进行对比,看看能找到或者猜到有什么不同的地方? Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻…...

CAD指令框找不到了怎么调出来?CAD指令框调出方法
CAD制图过程中,为了提高设计师的绘图效率,经常会用到各种CAD命令快捷键,可是CAD指令框突然不见了,这就让人很头疼了。CAD指令框找不到了怎么调出来呢?本节内容小编以浩辰CAD软件为例来给大家分享一下CAD指令框调出方法…...

一般用哪些工具做大数据可视化分析?
做数据分析这些年来,从刚开始的死磕excel,到现在成为数据分析行业的偷懒大户,使用过的工具还真不少! 这篇分享一些我在可视化工具上的使用心得,由简单到复杂,按照可视化类型一共分为纯统计图表类、GIS地图…...

Python每日一练(20230308)
目录 1. Excel表列名称 ★ 2. 同构字符串 ★★ 3. 分割回文串 II ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 专栏 Python 每日一练 专栏 1. Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如࿱…...

jvm之堆解读
堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区…...

重构·改善既有代码的设计.02
前言之前在《重构改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更......识别代码的坏味道Duplicated Code 重复代码。最单纯的Duplicated Code就是“同一个类中含有相同的表达式”或“两个互为兄弟的子类内含有相同表达…...
脑电信号处理总成
目录一. EEG(脑电图)1.1 脑波1.2 伪迹1.2.1 眼动伪迹1.2.2 肌电伪迹1.2.3 运动伪迹1.2.4 心电伪迹1.2.5 血管波伪迹1.2.6 50Hz和静电干扰1.3 伪迹去除方法1.3.1 避免伪迹产生法1.3.2 直接移除法1.3.3 伪迹消除法一. EEG(脑电图) 1.1 脑波 脑波(英语:br…...

判断推理之图形推理
考点一动态位置变化(一)平移1.特征:图形在平面上的移动,图形本身的大小和形状不发生改变。2.方向:直线(上下、左右、斜对角线),绕圈(顺时针、逆时针)3.距离&a…...

【预告】ORACLE Unifier v22.12 虚拟机发布
引言 离ORACLE Primavera Unifier 最新系统 v22.12已过去了3个多月,应盆友需要,也为方便大家体验,我近日将构建最新的Unifier的虚拟环境,届时将分享给大家,最终可通过VMWare vsphere (esxi) / workstation 或Oracle …...

Sql执行流程与Redo log、 Undo log、 Bin log日志文件
文章目录Sql执行流程与日志文件Sql的执行流程Redo LogBin logUndo logSql执行流程与日志文件 Sql的执行流程 mysql的内部组件结构如下图所示 连接器 与客户端建立连接,检验登录密码,分配相应权限 查询缓存 执行sql语句时会先从这里找一下,…...

如何提高软件测试执行力
高效的测试执行力 不管在哪个行业,高校的执行力都是不可或缺的。在软件测试行业更是这样。有些测试人员,很勤奋也很吃苦,但是可能最终不能很好的完成测试任务。究其原因就是一个测试执行力的问题。 高效执行就是有目标,有计划&…...
Open3D 计算点到平面的距离
目录 一、算法原理二、代码实现三、结果展示一、算法原理 平面外一点 ( x 1 , y 1 , z 1 ) (x_1,y_1,z_1) (x...

DDD领域驱动设计初探
DDD 强调领域模型要兼顾业务和技术两个视角。 我们怎么用一套系统化的方法,抽丝剥茧、一步一步地把需求落实到代码呢?咱们看看下面这张图,它表示了领域驱动设计中的主要流程。 领域驱动设计主要的开发流程你可以看到,在整个开发流…...

C中AES_cbc_encrypt加密对应java中的解密
前言知识: 1.AES(Advanced Encryption Standard)高级加密标准,作为分组密码(把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文)。 2.在AES标准…...

演化算法:乌鸦搜索算法 (Crow Search Algorithm)
前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 在机器学习中,我们所要优化的问题很多时候难以求导,因此通常会采用一些演化算法(又称零…...

基于open62541的OPC UA服务器和客户端开发技术
一、OPC UA的基本概念 1、OPC(OLE for Process Control),是一个工业标准,管理这个标准的国际组织是OPC基金会; 2、OPC通信结构:是指包含一个或多个OPC客户端与服务器相互通信的集合。以下是一个简单的流程图:标准的C/S结构。 3、OPC服务器:TOPC基金会定义了四种;...

测试测开面试要知道的那些事01
列表与元组的区别列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。元组缓存于Python运行时环境,这意味着我们每次使用元组时无…...

物联网毕设 -- 智能厨房监测系统(改)
前言 在家庭生活中,厨房是必不可少的,所以厨房的安全问题关乎着我们大家的生命,所以提出智能厨房监测系统,目的就是为我们减少不必要的安全问题 ⚠️⚠️(本文章仅提供思路和实现方法,并不包含代码&#x…...

macOS 13.3 Beta 3 (22E5236f)发布
系统介绍3 月 8 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.3 开发者预览版 Beta 3 更新(内部版本号:22E5236f),本次更新距离上次发布隔了 7 天。macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...