框架:spring+springmvc+mybatis
使用maven来管理项目
1:引入依赖jar包
2:添加pageHelper插件
3:Dao层单元测试,书写代码
4:服务层单元测试:书写代码
5:Web层使用:书写代码
1:引入依赖jar包 pom.xml
<!-- 引入mybatis的 pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2:添加pageHelper插件
idea编辑器ctrl+N 查找类路径,输入pageIntercepter
spring 中叫做拦截器,在mybatis配置中叫做插件
此类路径是配置插件的值如下com.github.pagehelper.PageInterceptor
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--reasonable:分页合理化参数,默认值为false,直接根据参数进行查询。
当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。-->
<!--<property name="reasonable" value="true"/>-->
</plugin>
</plugins>
哪么mybatis插件要配置到mybatis全局配置变中,即mybatis-config.xml
特别强调, mybatis配置是有顺序的,查看如下
ctrl+点击<configuration>
可以查看配置文件在environments前边一行,复制如上<plugins>……</plugins>
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
3:书写代码
a)在调用dao层书写,采用junit单元测试
//测试分页后,可删除
@Test
public void listRecruitsDaoPerPage(){
//连接数据库,且数据配置如上步骤2:添加pageHelper插件
SqlSession sqlSession = getSqlSession();
//获取代理对象
RecruitDao mapper = sqlSession.getMapper(RecruitDao.class);
//此包一定要放在调用数据库之前,即mapper.listRecruitsDaoPerpage
PageHelper.startPage(2,3); //2表示是起始页,3表示每页显示行数
List<Recruit> recruits = mapper.listRecruitsDaoPerPage("南通");
//PageInfo封装分页信息,把上一行,记录集recruits,通过构造函数传递给PageInfo计算
PageInfo<Recruit> pageInfo= new PageInfo<Recruit>(recruits,3); //3表示有很多分页中,中列出三个页码
System.out.println(pageInfo); //打印能看到PageInfo对象提供所有页码属性,相当多,提供周全
System.out.println("打印页码"+ Arrays.toString(pageInfo.getNavigatepageNums()));
Integer i=0;
for (Recruit recruit:recruits){
i+=1;
System.out.println(i+"、"+recruit.getRid()+recruit.getJobTitle()+recruit.getCityCounty());
}
}
4:服务层单元测试书写代码
因为服务层,单元测试,管理bean是通过applicationContent.xml 为了加载plugins,需在数据库工厂中,加载插件如下配置,具体见如下代码 <!--添加pageHelper 分页过虑器, --> <property name="plugins"> </property>
<!--引入Mybatis文件-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 添加pageHelper 分页过虑器, begin-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
</value>
</property>
</bean>
</array>
</property>
<!-- 添加pageHelper 分页过虑器, end -->
<property name="dataSource" ref="dataSource"/>
<!-- 加载mybatis的配置文件 -->
<!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
*是个通配符,代表所有的文件,**代表所有目录下 -->
<!--强调:xxxMapper.xml配置在resources文件夹下,classpath*:没加*报错-->
<property name="mapperLocations" value="classpath*:com/ibaiqi/spider/dao/mapper/*.xml" />
</bean>
5:Web层使用:书写代码
要在web.xml指向的spring-mvc.xml 添加插件配置
<!--引入Mybatis文件--> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <!--添加pageHelper插件 分页过虑器, --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <value> helperDialect=mysql </value> </property> </bean> </array> </property> <property name="dataSource" ref="dataSource"/> <!-- 加载mybatis的配置文件 --> <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。 *是个通配符,代表所有的文件,**代表所有目录下 --> <!--强调:xxxMapper.xml配置在resources文件夹下,classpath*:没加*报错--> <property name="mapperLocations" value="classpath*:com/ibaiqi/spider/dao/mapper/*.xml" /> </bean>