Mybatis-Plus 2.1.9 + Mybatis 3.4.5 分页查询 - 模糊查询示例
Mybatis-Plus 2.1.9 + Mybatis 3.4.5 分页查询 - 模糊查询示例
本文介绍使用 Mybatis-Plus 2.1.9 和 Mybatis 3.4.5 进行分页查询,并实现用户实体类 (User) 的 'name' 属性模糊查询。
1. Mapper.java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper extends BaseMapper<User> {
IPage<User> selectUserPage(Page<User> page, @Param("user") User user);
}
2. Mapper.xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUserPage" resultMap="userResultMap">
SELECT * FROM user
<where>
<if test="user.name != null and user.name != ''">
AND name LIKE CONCAT('%', #{user.name}, '%')
</if>
</where>
</select>
</mapper>
3. Service
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public IPage<User> getUserPage(Page<User> page, User user) {
return userMapper.selectUserPage(page, user);
}
}
说明:
- 在
Mapper.xml中,CONCAT('%', #{user.name}, '%')用于构造模糊查询语句,将用户输入的 'name' 值包裹在 '%' 中,实现任意位置的匹配。 userResultMap是一个预定义的结果映射,用于将查询结果映射到User对象。Service层调用UserMapper的selectUserPage方法进行查询,并返回IPage<User>对象,包含分页信息和查询结果。
原文地址: https://www.cveoy.top/t/topic/onrg 著作权归作者所有。请勿转载和采集!