使用 Python 为 PDF 添加文本页眉和页脚

本文用 Spire.PDF 梳理 Python 给 PDF 添加页眉页脚的几种常见做法,包括逐页绘制文本、插入 Logo、按页面定制不同页眉,以及用页面模板自动生成页码。重点保留坐标、字体、模板和自动字段这些实现细节,方便你判断哪种方式更适合批量生成或正式文档场景。

使用 Python 为 PDF 添加文本页眉和页脚

MyBatis-Plus 查询结果全是 null,但条数正确:原因与排查办法

MyBatis-Plus 查询结果“条数正确但每项都是 null”,通常不是 SQL 没查到,而是结果映射阶段出了问题。最常见的原因是下划线字段与默认驼峰映射冲突,其次还要检查 Bean 的 setter、Lombok 生效情况,以及是否需要关闭 `map-underscore-to-camel-case`。

MyBatis-Plus 查询结果全是 null,但条数正确:原因与排查办法

SQL 中 GROUP BY 查询很慢,应该如何排查

GROUP BY 查询变慢,常见根因不是数据量大,而是执行计划没走上正确的索引路径。排查时先看 EXPLAIN 的 Extra 列,再结合联合索引顺序、覆盖情况、类型转换和 DISTINCT 替代场景逐项定位。 遇到 GROUP BY 查询变慢时,很多优化都停留在“补个索引试试”这一层,结果往往不稳定。

SQL 中 GROUP BY 查询很慢,应该如何排查

SQL 触发器为什么无法直接更新复杂视图

复杂视图之所以不能像表一样直接更新,核心不在语法,而在数据库是否愿意替你拆解 DML。SQL Server 允许借助 INSTEAD OF 触发器接管写入,但所有分发表、字段映射和校验都要手写;MySQL 则直接禁止在视图上创建触发器。

SQL 触发器为什么无法直接更新复杂视图

Linux 下检测 Rust 内存泄漏的几种常用方法

Rust 能显著降低内存错误,但并不意味着 Linux 上写的 Rust 程序就不会泄漏。本文按“动态检测、趋势分析、代码审查、定向验证”四条线梳理 Valgrind、heaptrack、massif 与 Rust 生态工具的用法,帮助你判断该先用哪类工具、看什么结果、哪些代码最值得重点排查。

Linux 下检测 Rust 内存泄漏的几种常用方法

SQL 窗口函数如何计算商品销量占分类总量的比例

计算商品销量占分类总量的比例,核心是把分母写成 `SUM(sales) OVER(PARTITION BY category)`,再处理好整数除法、零值分母和版本兼容。本文按“正确写法、避坑、防精度误判、旧版替代方案”梳理,方便直接落到查询里。

SQL 窗口函数如何计算商品销量占分类总量的比例

SQL 中如何使用 ROLLUP 生成小计和总计

本文围绕 SQL 中的 ROLLUP 用法展开,说明它如何按字段顺序生成小计与总计、如何识别结果中的汇总行,以及何时该改用 CUBE 或 GROUPING SETS。文中保留关键 SQL 写法,并补充了大表场景下的使用注意点。 在报表、经营分析和分层汇总场景里,很多人知道 ROLLUP 能“顺手带出总计”,但真正写到查询里时,往往会被层级顺序、 NULL 含义和标签显示。

SQL 中如何使用 ROLLUP 生成小计和总计