*笔者采用spring+springMVC+mybatis框架做java后台开发,开发软件是IntellijIDEA(用过之后已卸掉eclipse),项目为maven工程。
(在已有ssm框架基础上)
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<property name="offsetAsPageNum" value="true"/>
<property name="rowBoundsWithCount" value="true"/>
plugin>
plugins>
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>4.0.0version>
dependency>
@ResponseBody
@RequestMapping(value = "selectPositionWithCondition.do")
public AjaxResultPo deleteDepart(PositionManagerPO positionManagerPO){
PageInfo pageInfo = positionService.getMessagesByCondition(positionManagerPO);
return new AjaxResultPo(true,pageInfo);
}
*需要引 import com.github.pagehelper.PageInfo;
这里的重点就是controller调用service实现类的getMessagesByCondition方法,返回一个以PageInfo包装的一个list,(实际从数据库中查出的是list<>)
@Autowired
private PositionManagerMapper mapper;
public PageInfo getMessagesByCondition(PositionManagerPO positionManagerPO) {
PageHelper.startPage(1,10);//这句是重点,利用分页插件将接下来的一条查询的sql限定在第一页,查10条数据
List list = mapper.selectPosition1(positionManagerPO);//调用mapper层执行查询
PageInfo page = new PageInfo(list);//包装到PageInfo,传给controller
//测试PageInfo全部属性,PageInfo的强大之处,它携带以下信息
System.out.println("PageNum: "+page.getPageNum()); //2 第几页
System.out.println("PageSize: "+page.getPageSize()); //3 每页包含的条数
System.out.println("StartRow: "+page.getStartRow()); //4 显示的页面的第一条的
System.out.println("EndRow: "+page.getEndRow()); //6 显示的页面的最后一条的
System.out.println("Total: "+page.getTotal()); //8 总记录数
System.out.println("Pages: "+page.getPages()); //3 总页数
System.out.println("FirstPage: "+page.getFirstPage()); //1 第一页
System.out.println("LastPage: "+page.getLastPage()); //3 最后一页
System.out.println("isHasPreviousPage: "+page.isHasPreviousPage());
System.out.println("isHasNextPage: "+page.isHasNextPage());
return page;
}
@Component
public interface PositionManagerMapper {
public List selectPosition1(PositionManagerPO positionManagerPO);
}
mapper中什么都没有。。。
<mapper namespace="com.channelsoft.dao.PositionManagerMapper">
<select id="selectPosition1" resultType="java.util.ArrayList" parameterType="com.channelsoft.model.PositionManagerPO" resultMap="PositionResultMap">
select * from t_position_manager
select>
mapper>
同样简单粗暴的查询
1. pageHelper只支持使用后的下一条查询语句,而且是用limit ?,? 实现的
2.pageHelper与注解形式的@SelectProvider不兼容,需使用xml文件写动态sql语句
3.maven工程默认不编译.xml文件,在工程的target文件夹下看不到对应的.xml,需要在pom.xml的build标签里添加以下内容:
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.xmlinclude>
includes>
<filtering>truefiltering>
resource>
resources>