MyBatis最推荐用XML映射文件写复杂动态SQL,需合理组合<if>、<where>、<set>、<foreach>、<sql>/<include>标签;XML路径和namespace必须与Mapper接口严格一致,并包含标准XML声明和DOCTYPE。

用 XML 映射文件写复杂动态 SQL 是 MyBatis 最推荐、最稳定的方式。核心在于合理组合 <if>、<where>、<set>、<foreach> 和 <sql>/<include> 这几类标签,避免手拼字符串带来的语法错误和 SQL 注入风险。
XML 文件位置与基础结构要对
Mapper 接口是 com.example.mapper.UserMapper,对应 XML 文件必须放在 src/main/resources/com/example/mapper/UserMapper.xml,且 <mapper namespace="com.example.mapper.UserMapper"> 必须严格一致。开头声明不能少:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">


















