java分页查询sql语句_MyBatis-Plus 分页查询以及自定义sql分页的实现
时间: 2023-07-02 09:18:52 浏览: 242
MyBatis-Plus提供了非常方便的分页查询功能,可以直接使用Page类来进行分页查询。
使用MyBatis-Plus的分页查询,需要进行以下步骤:
1. 引入MyBatis-Plus的依赖:在pom.xml中添加以下依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
```
2. 定义实体类:定义需要进行分页查询的实体类,并使用注解@TableField进行字段映射。
3. 定义Mapper接口:定义Mapper接口,并继承BaseMapper类,继承BaseMapper类后,MyBatis-Plus会自动提供一些基本的CRUD操作。
```
public interface UserMapper extends BaseMapper<User> {}
```
4. 分页查询:在Service层中调用分页查询方法,使用Page对象设置分页参数,然后调用selectPage方法进行分页查询。
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> getUserList(int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectPage(page, null);
}
}
```
如果需要自定义sql分页,可以在xml中使用MyBatis的分页插件进行分页查询。
1. 引入分页插件:在pom.xml中添加以下依赖:
```
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
```
2. 配置分页插件:在MyBatis的配置文件中配置分页插件。
```
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
```
3. 自定义sql分页查询:在xml中使用分页插件的PageHelper.startPage方法进行分页查询。
```
<select id="getUserList" resultMap="userMap">
select * from user
<where>
<if test="name != null">
and name like concat('%',#{name},'%')
</if>
</where>
order by id desc
</select>
```
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> getUserList(int pageNum, int pageSize, String name) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.getUserList(name);
return new PageInfo<>(userList);
}
}
```
阅读全文