用Java写一个mybatispuls的xml,sql,分页查询。结果用PageResult<>封装
时间: 2024-03-05 20:49:23 浏览: 189
mybatis-plus分页查询的实现示例
好的,以下是使用 MyBatis-Plus 框架的 XML 配置文件示例:
```xml
<!-- UserDao.xml -->
<mapper namespace="com.example.dao.UserDao">
<select id="getUserList" resultMap="userResultMap">
SELECT * FROM user
<where>
<!-- 可以添加一些查询条件 -->
</where>
ORDER BY id DESC
LIMIT #{start}, #{pageSize}
</select>
<select id="getUserTotal" resultType="int">
SELECT COUNT(*) FROM user
<where>
<!-- 可以添加一些查询条件 -->
</where>
</select>
<resultMap id="userResultMap" type="com.example.entity.User">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
</resultMap>
</mapper>
```
上面的 XML 配置文件中,我们定义了两个 SQL 查询语句:
- getUserList:分页查询用户列表,其中 #{start} 和 #{pageSize} 是 MyBatis-Plus 自动计算的分页参数。
- getUserTotal:查询符合条件的总记录数。
下面是对应的 Java 代码:
```java
public interface UserDao extends BaseMapper<User> {
List<User> getUserList(@Param("start") int start, @Param("pageSize") int pageSize);
int getUserTotal();
}
```
上面的代码中,我们使用了 MyBatis-Plus 提供的 BaseMapper 接口,并通过 @Param 注解指定了参数名。
最后,我们可以使用 PageResult 封装查询结果:
```java
public class UserService {
@Autowired
private UserDao userDao;
public PageResult<User> getUserList(int pageNum, int pageSize) {
PageResult<User> result = new PageResult<>();
List<User> userList = userDao.getUserList((pageNum - 1) * pageSize, pageSize);
int total = userDao.getUserTotal();
result.setPageNum(pageNum);
result.setPageSize(pageSize);
result.setTotal(total);
result.setData(userList);
return result;
}
}
```
上面的代码中,我们首先调用 UserDao 的 getUserList 和 getUserTotal 方法查询用户列表和总记录数,然后使用 PageResult 封装查询结果。
阅读全文