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

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 + 缓存配置


相关推荐
唐青枫4 天前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
咖啡八杯5 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
Flittly7 天前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
dunky7 天前
Spring 的三级缓存与循环依赖
后端·spring
码云数智-园园12 天前
C++20 Modules 模块详解
java·开发语言·spring
咖啡八杯12 天前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
Flittly12 天前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
李少兄12 天前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring
shushangyun_12 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化