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>
在上面的示例中,使用了
在调用selectUsers方法时,可以传入不同的参数来获取符合条件的用户列表:
Map<String, Object> params = new HashMap<>();
params.put("username", "Tom");
params.put("age", 20);
List<User> users = userMapper.selectUsers(params);
以上就是使用MyBatis动态标签构建动态SQL语句的示例,通过合理使用动态标签可以方便灵活地构建复杂的SQL查询条件。