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/11/10 19:28:06 阅读更多 →
Prompt入门到精通系列(一)

Prompt入门到精通系列(一)

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

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

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

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

2026/11/10 13:13:06 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/9 14:01:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/9 14:56:39 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/9 14:01:11 阅读更多 →

日新闻

周新闻

月新闻