- 初次学习MyBatis,自己花了不少时间,理解一件事物是需要时间的。经过多次反复的理解,你的认知能力就可以得到提升。以下是学习MyBatis的一些理解认识,技术理解上若有不当之处,敬请朋友们提出宝贵意见,以此共勉! 感触:要想真正理解框架,应该深入到底层实现代码中去。只有这样,才能够真正理解其框架内涵,或许还可以写出个性化的框架喲! 基本的演变流程为:JDBC... 初次学习MyBatis,自己花了不少时间,理解一件事物是需要时间的。经过多次反复的理解,你的认知能力就可以得到提升。以下是学习MyBatis的一些理解认识,技术理解上若有不当之处,敬请朋友们提出宝贵意见,以此共勉! 感触:要想真正理解框架,应该深入到底层实现代码中去。只有这样,才能够真正理解其框架内涵,或许还可以写出个性化的框架喲! 基本的演变流程为:JDBC...
- 一、使用 SELECT 子句进行多表查询SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id;注:... 一、使用 SELECT 子句进行多表查询SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id;注:...
- 在mysql中批量更新我们可能使用update,replace into来操作,下面详细介绍mysql批量更新与性能。一、批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下wh... 在mysql中批量更新我们可能使用update,replace into来操作,下面详细介绍mysql批量更新与性能。一、批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下wh...
- 扩展功能 代码生成在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。这里推荐大家使用一款MybatisPlus的插件,它可以基于图形化界面完成MybatisPlus的代码生成,非常... 扩展功能 代码生成在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。这里推荐大家使用一款MybatisPlus的插件,它可以基于图形化界面完成MybatisPlus的代码生成,非常...
- 核心功能 条件构造器除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外,还支持更加复杂的where条件。参数中的Wrapper就是条件构造的抽象类,其下有很多默认实现,继承关系如图:Wrapper的子类AbstractWrapper提供了where中包含的所有条件构造方法:而QueryWrapper在... 核心功能 条件构造器除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外,还支持更加复杂的where条件。参数中的Wrapper就是条件构造的抽象类,其下有很多默认实现,继承关系如图:Wrapper的子类AbstractWrapper提供了where中包含的所有条件构造方法:而QueryWrapper在...
- 一、数据库 1.1 事务 1.1.1 事务四个特性(ACID)原子性 (Atomicity)整个事务中的所要操作要么全部提交成功,要么全部失败回滚。一致性(Consistency)保证数据库中的数据操作之前和操作之后的一致性。(比如用户多个账户之间的转账,但是用户的总金额是不变的)隔离性(Isolation)隔离性要求一个事务对数据库中数据的修改,在未提交完成前对于其它事务是不可见的。(即... 一、数据库 1.1 事务 1.1.1 事务四个特性(ACID)原子性 (Atomicity)整个事务中的所要操作要么全部提交成功,要么全部失败回滚。一致性(Consistency)保证数据库中的数据操作之前和操作之后的一致性。(比如用户多个账户之间的转账,但是用户的总金额是不变的)隔离性(Isolation)隔离性要求一个事务对数据库中数据的修改,在未提交完成前对于其它事务是不可见的。(即...
- 窗口函数是同时获取明细和汇总数据的利器,但是也是SQL中容易出现瓶颈的一类函数。本篇旨在从一典型案例入手,解析窗口函数瓶颈的场景下,通过调优聚合函数通用的提前聚合方法,减少窗口函数对SQL性能的影响。 窗口函数是同时获取明细和汇总数据的利器,但是也是SQL中容易出现瓶颈的一类函数。本篇旨在从一典型案例入手,解析窗口函数瓶颈的场景下,通过调优聚合函数通用的提前聚合方法,减少窗口函数对SQL性能的影响。
- 引言了不起最近处理了一个生产问题,具体情况是这样的:就是两个sql语句在同一个代码块中,第一个sql语句是对设备状态根据设备ID批量删除,第二个sql语句是批量插入,插入的设备ID和删除的设备ID是同一个。本地和测试环境当时都好好的,可是上了生产环境,报错了错误是存在重复的唯一索引,代码逻辑很简单可以看到就是一个批量删除,再批量插入,测试环境当时没有用多个实例进行测试,上产是有多个实例的,错... 引言了不起最近处理了一个生产问题,具体情况是这样的:就是两个sql语句在同一个代码块中,第一个sql语句是对设备状态根据设备ID批量删除,第二个sql语句是批量插入,插入的设备ID和删除的设备ID是同一个。本地和测试环境当时都好好的,可是上了生产环境,报错了错误是存在重复的唯一索引,代码逻辑很简单可以看到就是一个批量删除,再批量插入,测试环境当时没有用多个实例进行测试,上产是有多个实例的,错...
- 引言项目上生产环境最近有个借口查询突然需要45秒左右。了不起看到这个问题很疑惑,什么情况,这个接口之前好像没有出现过任何问题吧。经和运维配合查看,发现是SQL语句问题,有个sql查询脚本执行竟然消耗了40秒,我拿出来自己执行发现亦是如此。sql大致情况就是有个left join了一张表,有10几万数据,使用explain查看,就是这个表执行消耗了近40秒。解决由于是生产环境,涉及数据隐私,具... 引言项目上生产环境最近有个借口查询突然需要45秒左右。了不起看到这个问题很疑惑,什么情况,这个接口之前好像没有出现过任何问题吧。经和运维配合查看,发现是SQL语句问题,有个sql查询脚本执行竟然消耗了40秒,我拿出来自己执行发现亦是如此。sql大致情况就是有个left join了一张表,有10几万数据,使用explain查看,就是这个表执行消耗了近40秒。解决由于是生产环境,涉及数据隐私,具...
- 目录SQL运算符和函数一、SQL运算符:算数运算符:用于执行数值计算。比较运算符:用于比较两个值并返回布尔值。逻辑运算符:用于组合多个条件。位运算符:用于对二进制数进行操作。其他运算符:如 BETWEEN, IN, IS NULL, IS NOT NULL, LIKE, REGEXP 等,用于更复杂的条件查询。例如:二、SQL函数:字符串函数:如 CONCAT(), UPPER(), LO... 目录SQL运算符和函数一、SQL运算符:算数运算符:用于执行数值计算。比较运算符:用于比较两个值并返回布尔值。逻辑运算符:用于组合多个条件。位运算符:用于对二进制数进行操作。其他运算符:如 BETWEEN, IN, IS NULL, IS NOT NULL, LIKE, REGEXP 等,用于更复杂的条件查询。例如:二、SQL函数:字符串函数:如 CONCAT(), UPPER(), LO...
- 数据库存储的基本单位是页,对于一棵 B+ 树的索引来说,是先从根节点找到叶子节点,也就是先查找数据行所在的页,再将页读入到内存中,在内存中对页的记录进行查找,从而得到想要数据,想要查找的,只是一行记录,但是对于磁盘 I/O 来说却需要加载一页的信息,因为页是最小的存储单位。那么对于数据库来说,如果想要查找多行记录,查询时间是否会成倍地提升呢?其实数据库会采用缓冲池的方式提升页的查找效率。 数... 数据库存储的基本单位是页,对于一棵 B+ 树的索引来说,是先从根节点找到叶子节点,也就是先查找数据行所在的页,再将页读入到内存中,在内存中对页的记录进行查找,从而得到想要数据,想要查找的,只是一行记录,但是对于磁盘 I/O 来说却需要加载一页的信息,因为页是最小的存储单位。那么对于数据库来说,如果想要查找多行记录,查询时间是否会成倍地提升呢?其实数据库会采用缓冲池的方式提升页的查找效率。 数...
- 目录AT模式的引进AT模式前提AT模式的工作流程案例流程梳理AT模式的原理具体使用优缺点小结 AT模式的引进我们XA模式有死锁(协议阻塞)问题:XA prepare 后,分支事务进入阻塞阶段,收到 XA commit 或 XA rollback 前必须阻塞等待。如果没有一个靠谱的协调者存在,比如abc三个库的数据被二阶段决议为提交,此时ab收到的指令,提交后,c库在收到指令后挂了,并没有... 目录AT模式的引进AT模式前提AT模式的工作流程案例流程梳理AT模式的原理具体使用优缺点小结 AT模式的引进我们XA模式有死锁(协议阻塞)问题:XA prepare 后,分支事务进入阻塞阶段,收到 XA commit 或 XA rollback 前必须阻塞等待。如果没有一个靠谱的协调者存在,比如abc三个库的数据被二阶段决议为提交,此时ab收到的指令,提交后,c库在收到指令后挂了,并没有...
- 今天分享关于 MybatisPlus 的高级用法。本文将重点探讨 MybatisPlus 中的代理实例和其运行原理,带领大家深入了解 MybatisPlus 的内部机制。让我们一起来探索吧! 1. MybatisPlus 简介MybatisPlus 是基于 MyBatis 的增强工具,提供了更简洁、高效的 CRUD 操作和丰富的查询功能。它简化了 MyBatis 的使用,使开发者可以更专注... 今天分享关于 MybatisPlus 的高级用法。本文将重点探讨 MybatisPlus 中的代理实例和其运行原理,带领大家深入了解 MybatisPlus 的内部机制。让我们一起来探索吧! 1. MybatisPlus 简介MybatisPlus 是基于 MyBatis 的增强工具,提供了更简洁、高效的 CRUD 操作和丰富的查询功能。它简化了 MyBatis 的使用,使开发者可以更专注...
- java.sql.SQLException: connection holder is null背景在进行Java应用程序的数据库操作时,经常会遇到java.sql.SQLException: connection holder is null的错误。这个错误通常是由于连接对象为空或未正确初始化导致的。本篇技术博客文章将详细介绍这个错误的原因和解决方法。错误原因连接对象为空:在进行数... java.sql.SQLException: connection holder is null背景在进行Java应用程序的数据库操作时,经常会遇到java.sql.SQLException: connection holder is null的错误。这个错误通常是由于连接对象为空或未正确初始化导致的。本篇技术博客文章将详细介绍这个错误的原因和解决方法。错误原因连接对象为空:在进行数...
- Flik的应用场景, Flink的流处理特性、Flink的优势、 Flink与Spark的差异、 flink的四⼤基⽯、Flink架构体系、无界数据流与有界数据流、Flink的编程模型 Flik的应用场景, Flink的流处理特性、Flink的优势、 Flink与Spark的差异、 flink的四⼤基⽯、Flink架构体系、无界数据流与有界数据流、Flink的编程模型
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签