Orcle 实现用PageHelper 手动分页详细代码
时间: 2024-12-24 09:32:06 浏览: 19
Oracle数据库中使用MyBatis框架和PageHelper插件进行手动分页,首先你需要在你的持久层接口上添加`@Mapper`注解,并创建一个对应的XML映射文件。下面是一个简单的例子:
**1. 定义接口(OrcleMapper.java):**
```java
import org.apache.ibatis.annotations.*;
@Mapper
public interface OracleMapper {
@Select("SELECT * FROM your_table WHERE condition LIMIT #{offset}, #{limit}")
List<YourEntity> getRows(int offset, int limit);
}
```
这里假设`your_table`是你的表名,`YourEntity`是你的实体类,`condition`是你查询的条件。
**2. 映射文件(OracleMapper.xml):**
```xml
<mapper namespace="com.yourpackage.OrcleMapper">
<select id="getRows" parameterType="map" resultType="YourEntity">
SELECT * FROM your_table WHERE condition
<if test="offset != null and limit != null">
LIMIT #{offset}, #{limit}
</if>
</select>
</mapper>
```
**3. 使用PageHelper进行分页(Service或Controller):**
```java
@Autowired
private OracleMapper oracleMapper;
public Page<YourEntity> search(@Param("condition") String condition,
@Param("offset") Integer offset,
@Param("limit") Integer limit) {
PageHelper.startPage(offset, limit); // 初始化分页
return oracleMapper.getRows(condition); // 调用数据库方法并获取结果
}
// 获取总记录数
public long getTotal(@Param("condition") String condition) {
return (long) oracleMapper.getRows(condition).size();
}
```
在这个例子中,`startPage()`方法用于设置当前的页数和每页的数量,然后`getRows()`方法会自动应用分页限制。
阅读全文