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查询条件。