mybatis分页查询
时间: 2023-08-29 16:13:27 浏览: 93
cjs-mybatis-example:MyBatis分页查询
Mybatis是一款优秀的ORM框架,提供了丰富的查询功能,其中包括分页查询。下面是一个简单的Mybatis分页查询的示例:
1. 首先,在Mapper.xml中配置分页查询的SQL语句,使用limit关键字实现分页:
```xml
<select id="selectByPage" parameterType="map" resultType="com.example.User">
select * from user
<where>
<if test="name != null and name != ''">
name like concat('%', #{name}, '%')
</if>
</where>
order by id asc
limit #{start}, #{pageSize}
</select>
```
其中,#{start}和#{pageSize}是动态参数,表示分页查询的起始位置和每页记录数。
2. 在Mapper接口中定义分页查询的方法:
```java
public interface UserMapper {
List<User> selectByPage(Map<String, Object> params);
}
```
其中,params参数用于传递分页查询所需的动态参数。
3. 在Service层中调用Mapper接口的分页查询方法,并传递分页查询所需的参数:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> selectByPage(String name, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
Map<String, Object> params = new HashMap<>();
params.put("name", name);
List<User> userList = userMapper.selectByPage(params);
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
}
```
其中,PageHelper是一个用于分页查询的插件,需要先引入相关依赖。在调用Mapper接口的分页查询方法前,先调用PageHelper的startPage方法,传递分页查询所需的页码和每页记录数。然后将动态参数封装到Map中,传递给Mapper接口的分页查询方法。最后,将查询结果封装成PageInfo对象返回。
以上就是一个简单的Mybatis分页查询的示例。
阅读全文