【Java踩坑笔记】44_数据库字段用保留字,MyBatis生成的SQL直接报错 44 | 数据库字段用保留字MyBatis 生成的 SQL 直接报错摘要字段名叫order、status、select这些保留字不转义直接拼 SQL 会报错。MySQL 用反引号转义但很多人忘了写。一、问题现象-- 字段名叫 order保留字没转义CREATETABLEorders(idBIGINTPRIMARYKEY,orderVARCHAR(100)-- ❌ 保留字报语法错误);正确写法CREATETABLEorders(idBIGINTPRIMARYKEY,orderVARCHAR(100)-- ✅ 反引号转义);但 MyBatis 里如果直接写字段名生成的 SQL 没反引号依然报错。二、踩坑现场场景实体字段名和保留字一样// ❌ 实体字段名是 orderMyBatis 生成的 SQL 没反引号classOrder{privateStringorder;// 字段名 保留字}MyBatis 生成 SQLINSERTINTOorders(order)VALUES(...);-- ❌ 报错三、正确写法3.1 数据库层字段名避开保留字最推荐-- ✅ 不要叫 order叫 order_nameCREATETABLEorders(idBIGINTPRIMARYKEY,order_nameVARCHAR(100)-- ✅ 不是保留字);3.2 MyBatis 里转义字段名!-- ✅ 用反引号包裹字段名MySQL --insertidinsertINSERT INTO orders (order) VALUES (#{order})/insert3.3 用Column指定字段名JPA 注解// ✅ JPA 注解方式classOrder{Column(nameorder)// 反引号包裹privateStringorder;}3.4 全局配置 MyBatis 自动加反引号# ✅ MyBatis-Plus 配置3.4.0mybatis-plus:global-config:db-config:column-format:%s# 所有字段名自动加反引号四、常见保留字清单保留字说明替代名order排序关键字order_name、sort_orderselect查询关键字selected、choicestatus部分数据库保留state、order_statusdesc降序关键字description、desc_textgroup分组关键字group_name、team五、最佳实践✅ 数据库字段命名的 3 条铁律字段名避开所有保留字设计表时就注意如果必须用保留字用反引号MySQL或双引号PostgreSQL转义MyBatis-Plus 开启column-format自动加反引号 如何快速发现保留字字段-- MySQL查看保留字清单SELECT*FROMinformation_schema.KEYWORDSWHEREreserved1;六、小结字段名叫保留字order、select…SQL 直接报语法错误MySQL 用反引号转义order最推荐设计表时避开保留字不要给自己找麻烦MyBatis-Plus 用column-format全局自动加反引号第六辑完。—— 下一篇进入第七辑日常开发技巧篇首篇toString里打印对象小心无限递归栈溢出本篇第26篇已讲换一篇。注第26篇已讲过toString()递归问题第七辑首篇改为日志打印对象用toString生产环境可能引发雪崩。更多资料一线大厂Java面试题合集

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/1 19:32:24
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/2 15:29:32
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/3 7:41:27
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 19:32:35
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻