温馨提示×

mybatis动态标签怎么使用

小亿
87
2024-05-17 17:40:25
栏目: 编程语言

MyBatis提供了一些动态标签来构建动态SQL语句,常用的动态标签有if、choose、when、otherwise、foreach等。下面是一个示例,演示如何使用MyBatis的动态标签:

假设有一个User类,包含id、username和age属性:

public class User {
    private Long id;
    private String username;
    private Integer age;

    // 省略getter和setter方法
}

在Mapper接口中定义一个查询方法:

public interface UserMapper {
    List<User> selectUsers(@Param("username") String username, @Param("age") Integer age);
}

在Mapper.xml文件中,使用动态标签来构建动态SQL语句:

<select id="selectUsers" parameterType="java.util.Map" resultType="User">
    SELECT * FROM user
    <where>
        <if test="username != null">
            AND username = #{username}
        </if>
        <if test="age != null">
            AND age = #{age}
        </if>
    </where>
</select>

在上面的示例中,使用了动态标签来判断传入的参数是否为null,从而动态拼接SQL语句。当传入的username和age不为null时,会拼接对应的条件到SQL语句中。

在调用selectUsers方法时,可以传入不同的参数来获取符合条件的用户列表:

Map<String, Object> params = new HashMap<>();
params.put("username", "Tom");
params.put("age", 20);
List<User> users = userMapper.selectUsers(params);

以上就是使用MyBatis动态标签构建动态SQL语句的示例,通过合理使用动态标签可以方便灵活地构建复杂的SQL查询条件。

0