MyBatis(常写作 MyBatis ,不是 mybatis)里常说的"关键字",一般包含 SQL 关键字 、MyBatis XML 标签(动态 SQL) 、映射配置关键字 三类。下面给你一份常用速查清单,适合面试 + 日常开发。
一、MyBatis XML 常用标签(最重要)
| 标签 | 作用 |
|---|---|
<select> |
查询 SQL |
<insert> |
插入 SQL |
<update> |
更新 SQL |
<delete> |
删除 SQL |
<resultMap> |
结果集映射 |
<parameterMap> |
参数映射(已不推荐) |
<sql> |
定义可复用 SQL 片段 |
<include> |
引入 SQL 片段 |
<cache> |
二级缓存配置 |
<cache-ref> |
引用其他 namespace 的缓存 |
二、动态 SQL 关键字(高频考点)
| 标签 | 说明 |
|---|---|
<if> |
条件判断 |
<choose> / <when> / <otherwise> |
类似 switch-case |
<trim> |
去多余逗号/AND/OR |
<where> |
自动处理 WHERE |
<set> |
自动处理 SET |
<foreach> |
遍历集合(IN、批量) |
<bind> |
绑定变量(常用于模糊查询) |
✅ 示例(<where> + <if>):
xml
<select id="selectUser">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
</where>
</select>
三、SQL 中 MyBatis 常用关键字(结合 JDBC)
| 关键字 | 说明 |
|---|---|
#{} |
预编译参数(防 SQL 注入 ✅) |
${} |
字符串拼接(有注入风险 ⚠️) |
resultType |
返回类型 |
resultMap |
自定义结果映射 |
parameterType |
参数类型 |
useGeneratedKeys |
获取自增主键 |
keyProperty |
主键字段 |
keyColumn |
数据库主键列 |
flushCache |
是否刷新缓存 |
useCache |
是否使用二级缓存 |
timeout |
SQL 超时时间 |
fetchSize |
JDBC fetchSize |
四、Mapper 接口相关关键字(注解)
| 注解 | 说明 |
|---|---|
@Select |
查询 |
@Insert |
插入 |
@Update |
更新 |
@Delete |
删除 |
@Param |
给参数命名 |
@Result |
字段映射 |
@Results |
多个 Result |
@One |
一对一 |
@Many |
一对多 |
五、关联映射关键字(ResultMap)
| 标签 | 说明 |
|---|---|
<id> |
主键 |
<result> |
普通字段 |
<association> |
一对一 |
<collection> |
一对多 |
columnPrefix |
列前缀 |
lazyLoadingEnabled |
延迟加载 |
aggressiveLazyLoading |
侵入式懒加载 |
六、MyBatis 核心配置(mybatis-config.xml)
| 配置项 | 说明 |
|---|---|
<configuration> |
根标签 |
<environments> |
环境配置 |
<environment> |
单个环境 |
<transactionManager> |
事务管理器 |
<dataSource> |
数据源 |
<mappers> |
Mapper 扫描 |
<typeAliases> |
别名 |
<plugins> |
插件(分页、拦截器) |
七、常见面试一句话总结 ✅
MyBatis 常用关键字 = SQL 关键字 + 动态 SQL 标签 + #{} / ${} + resultMap + 缓存配置