MyBatis动态SQL与连接池详解
一、MyBatis连接池1.1 连接池概述连接池是存储数据库连接的容器。如果没有连接池每次执行SQL语句都会创建Connection连接浪费时间影响程序性能。1.2 连接池分类MyBatis内置了连接池技术dataSource 标签的 type 属性有3个取值取值说明POOLED使用连接池推荐UNPOOLED不使用连接池JNDI使用JNDI实现连接池dataSource typePOOLED !-- 连接配置 -- /dataSource二、动态SQL之if标签根据条件动态拼接SQL语句// UserMapper接口 public ListUser findByWhere(User user); select idfindByWhere parameterTypeUser resultTypeUser select * from user where 1 1 if testusername ! null and username ! and username like #{username} /if if testsex ! null and sex ! and sex #{sex} /if /select三、动态SQL之where标签where 标签可以自动处理 where 11 的拼接问题select idfindByWhere parameterTypeUser resultTypeUser select * from user where if testusername ! null and username ! and username like #{username} /if if testsex ! null and sex ! and sex #{sex} /if /where /select四、动态SQL之foreach标签4.1 需求一id 1 or id 2 or id 3在User类中添加List集合属性private ListInteger ids; select idfindByIds parameterTypeUser resultTypeUser select * from user where foreach collectionids openid separatoror id itemi #{i} /foreach /where /select4.2 需求二id in (1,2,3)select idfindByIds parameterTypeUser resultTypeUser select * from user where foreach collectionids openid in ( separator, close) itemi #{i} /foreach /where /selectforeach标签属性说明collection要遍历的集合属性名open遍历开始拼接的字符串separator元素之间的分隔符close遍历结束拼接的字符串item每次遍历的元素别名五、提取公共SQL片段使用 sql 标签提取公共SQL用 include 引用!-- 提取公共SQL -- sql idfindAllSql select * from user /sql !-- 引用公共SQL -- select idfindAll resultTypeUser include refidfindAllSql/ /select select idfindByWhere parameterTypeUser resultTypeUser include refidfindAllSql/ where if testusername ! null and username ! and username like #{username} /if /where /select

相关新闻

银行系统大文件上传的加密方案与性能优化

银行系统大文件上传的加密方案与性能优化

1. 银行系统大文件上传中的敏感数据加密挑战在银行系统的日常业务中,客户经常需要上传包含敏感信息的各类文件,如身份证扫描件、财务报表、合同文本等。这些文件通常体积较大(从几MB到数百MB不等),且包含大量需要严格保…

2026/10/20 10:08:39 阅读更多 →
Prompt入门到精通系列(一)

Prompt入门到精通系列(一)

摘要:本文介绍 Prompt 万能公式「角色任务背景输出格式约束条件」,并通过穿搭分析场景的完整指令案例,演示如何将抽象公式落地为可直接使用的提示词,帮助读者快速上手结构化提问。Prompt万能公式角色任务背景输出格式约束条件你是…

2026/10/16 22:52:51 阅读更多 →
FC游戏金手指原理与实战:从内存修改到经典游戏深度体验

FC游戏金手指原理与实战:从内存修改到经典游戏深度体验

1. 项目概述:重温经典,解锁童年未竟之梦 还记得小时候,为了《魂斗罗》水下八关的传说,一遍遍尝试却无功而返的沮丧吗?或者是在《重装机兵》里,面对最终BOSS却因弹药耗尽而饮恨的无奈?FC&#xf…

2026/10/18 22:24:07 阅读更多 →

最新新闻

Delphi System.JSON 封装实践:从链式读写到RTTI映射的工程化设计

Delphi System.JSON 封装实践:从链式读写到RTTI映射的工程化设计

1. 为什么要在 System.JSON 外面再做一层封装1.1 原生 API 用起来最别扭的三个地方先说说我的真实感受。我在一个跨平台工具项目里频繁处理接口数据,第一版直接拿System.JSON裸写,写着写着就发现效率极低。原生库的功能其实都在:TJSONObject、…

2026/10/20 10:08:50 阅读更多 →
openTCS源码解析:构建、调度内核与AGV通信适配器

openTCS源码解析:构建、调度内核与AGV通信适配器

简介:openTCS 是一套开源的运输控制系统,用于控制自动导引车等物料搬运设备,这份压缩包面向希望深入学习其源码、进行二次开发的工程师与研究者,内含 openTCS 4.16.1 版本的原始码、示例原始码、官方文档及个人学习笔记。资源包采…

2026/10/20 10:08:50 阅读更多 →
CMake大型工程组织:多模块目录分层与依赖管理实战

CMake大型工程组织:多模块目录分层与依赖管理实战

简介:这份资源面向具备一定C基础、希望掌握大型工程构建管理的开发者,围绕CMakeLists.txt这一核心工具,讲解如何用统一方式组织多目录、多模块的项目结构。内容涵盖项目初始化、子目录管理、目标属性设置、外部依赖查找、CTest测试集成、安装…

2026/10/20 10:08:50 阅读更多 →
Delphi JSON封装:告别System.JSON繁琐API,打造优雅对象映射库

Delphi JSON封装:告别System.JSON繁琐API,打造优雅对象映射库

作为一个常年用 Delphi 写业务系统的老手&#xff0c;我太清楚原生System.JSON用起来有多别扭了。明明只是一个简单的“取字段值”操作&#xff0c;却要写出一长串FindValue、GetValue<string>&#xff0c;还得小心翼翼处理可能存在的Access Violation——JSON 里少个字段…

2026/10/20 10:08:50 阅读更多 →
国产ZXDoc源码包替代商业SDK:基于OXML规范的文档解析与渐进式替换指南

国产ZXDoc源码包替代商业SDK:基于OXML规范的文档解析与渐进式替换指南

简介&#xff1a;面向新能源车研发与汽车电子工具链从业者&#xff0c;这份项目代码包聚焦国产ZXDoc如何打破Vector CANoe垄断&#xff0c;以网页形式呈现技术突围背景与功能亮点。代码包含HTML页面及配套inscode配置、gitignore规则&#xff0c;文件仅3个、压缩后6KB&#xff…

2026/10/20 10:08:50 阅读更多 →
国产ZXDoc突围Vector垄断:文件解析与SDK替换实战解析

国产ZXDoc突围Vector垄断:文件解析与SDK替换实战解析

简介&#xff1a;面向汽车电子与嵌入式研发工程师、新能源车总线测试人员&#xff0c;围绕国产ZXDoc突围Vector垄断主题整理的项目代码资源&#xff0c;可帮助快速了解其在四大车载总线协议支持、DBC智能解析、ECU刷写与XCP标定等方面的技术特性与市场定位。ZIP压缩包体积仅6KB…

2026/10/20 10:07:49 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/20 9:50:45 阅读更多 →