解析Mybatis中的MapperXml映射文件(动态sql解析)

本文深入探讨MyBatis的映射语句,介绍其如何简化SQL操作,节省大量代码。通过XML文件配置,实现缓存、结果映射、动态SQL等功能,特别强调动态SQL的使用,如if、choose、trim、where、set等标签,极大提高SQL语句的灵活性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强 大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进 行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL构建的,并 且比普通的方法做的更好.

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序)

1 cache 给定命名空间的缓存配置
2 cache-ref 其他命名空间的缓存配置的引用
3 resultMap 是最富复杂也是最强大的元素,是用来描述如何从数据库结果集中来加载对象
4 sql – 可被其他语句引用的可重用语句块
5 insert – 映射插入语句
6 update – 映射更新语句
7 delete – 映射删除语句
8 select – 映射查询语句

1.Select 元素标签使用

在这里插入图片描述
在这里插入图片描述
select 基本数据类型 查询 所有内容都是输入也是输出
** 除了查询需要写返回结果类型 其他三类都不需要 默认返回 int**

输入参数分类 :基本类型,字符串,java bean,map,数组(删除操作时体现),List(添加时体 现)
结果类型分类 :基本数据类型,字符串,JavaBean,Map,List 等

输入参数类型:
在这里插入图片描述
输出类型分类(结果类型分类):
在这里插入图片描述
与之相对应的mapper:
在这里插入图片描述

添加:

在这里插入图片描述

更新:

在这里插入图片描述

删除:

在这里插入图片描述
与之相对应的mapper
在这里插入图片描述

Mybatis之动态sql:

1 基于xml配置:

**MyBatis 的强大特性之一便是它的动态 SQL。**如果你有使用 JDBC 或其他类似 框架的经验,你就能体会到根据不同条件拼接 SQL语句有多么痛苦。拼接的时候要确 保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性 可以彻底摆脱这种痛苦。它借助ognl(类似于jsp里面的el表达式)表达式来完成动 态sql的拼接使得非常简便。

if条件判断:

使用if标签就是加一个test属性作为判断, 如果有多个条件组合判断的话用and, or 连接

在这里插入图片描述
2.choose,when,otherwise选择器使用:
我们不想用到所有的条件语句,而只想从中择其一二。针对这种情况,MyBatis 提供 了 choose 元素,它有点像 Java 中的 switch 语
在这里插入图片描述
3.trim,where,set
where标签会判断是否需要and
trim: prefix 前置 prefixOverrides 重写and
在这里插入图片描述
set:set 自动识别是否需要逗号
在这里插入图片描述
上下两个效果一样
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值