MyBatis-Plus--在xml中使用wrapper的方法
在MyBatis-Plus中,可以使用QueryWrapper
或UpdateWrapper
等包装器来构造复杂的SQL查询语句,而不是手写原生的SQL。这些包装器提供了链式调用方法,可以很方便地构造各种条件查询。
以下是一个使用QueryWrapper
的示例:
假设有一个用户表user
,你想要查询年龄大于20的用户,并按照年龄降序排序。
<select id="selectUsers" resultType="User">
SELECT * FROM user
<where>
<if test="wrapper != null">
${@org.apache.ibatis.scripting.xmltags.IfWrapper@evaluateAllCondition(wrapper)}
</if>
</where>
ORDER BY age DESC
</select>
在对应的Mapper接口中,你可以这样使用:
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsers(@Param(Constants.WRAPPER) QueryWrapper<User> wrapper);
}
然后在你的业务代码中:
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 20); // 这里的"age"是表中的列名,20是查询的条件值,gt是greater-than的缩写,表示大于
List<User> users = userMapper.selectUsers(queryWrapper);
这样,MyBatis-Plus会自动生成并执行一个包含查询条件的SQL语句。这样的设计使得SQL语句的构建更加灵活和易于维护。
评论已关闭