在MyBatis中,可以使用、、、等标签来编写动态SQL语句。
在MyBatis中执行动态SQL语句,可以使用以下步骤:
1、使用<if>标签进行条件判断

2、使用<choose>、<when>和<otherwise>标签进行多条件判断
3、使用<trim>标签去除多余的逗号和AND关键字
4、使用<foreach>标签进行循环操作
5、使用<bind>标签创建一个变量并将其绑定到一个表达式
6、使用${}或#{}引用绑定的变量
下面是一个示例:
假设我们有一个用户表(user),包含id、name、age和gender字段,现在需要根据不同的条件查询用户信息。

在mapper接口中定义一个方法,
List<User> selectUsers(Map<String, Object> params);
在mapper.xml文件中编写动态SQL语句:
<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE mapper PUBLIC "//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis3mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUsers" resultType="com.example.entity.User">
SELECT * FROM user
<where>
<!使用<if>标签进行条件判断 >
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="gender != null and gender != ''">
AND gender = #{gender}
</if>
</where>
</select>
</mapper>
在这个示例中,我们使用了<if>标签来判断参数是否为空,如果不为空,则添加相应的条件到SQL语句中,这样,我们就可以根据不同的条件查询用户信息了。
