springboot mybatis

📅 2026/7/9 14:47:56 👁️ 阅读次数 📝 编程学习
springboot mybatis

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>):

<selectid="selectUser">SELECT * FROM user<where><iftest="name != null">AND name = #{name}</if></where></select>

三、SQL 中 MyBatis 常用关键字(结合 JDBC)

关键字说明
#{}预编译参数(防 SQL 注入 ✅)
${}字符串拼接(有注入风险 ⚠️)
resultType返回类型
resultMap自定义结果映射
parameterType参数类型
useGeneratedKeys获取自增主键
keyProperty主键字段
keyColumn数据库主键列
flushCache是否刷新缓存
useCache是否使用二级缓存
timeoutSQL 超时时间
fetchSizeJDBC 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 + 缓存配置