测试
package com.sky.test;
import com.sky.controller.UserController;
import com.sky.pojo.Emp;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class Demo {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserController userController = (UserController) applicationContext.getBean("userController");
List<Emp> emps = userController.getEmps(2,5);
System.out.println(emps);
}
}
controller
package com.sky.controller;
import com.sky.pojo.Emp;
import com.sky.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import java.util.List;
@Controller
public class UserController {
@Autowired
private UserService userService;
public List<Emp> getEmps(int pageNum,int pageSize){
return userService.getEmps(pageNum,pageSize);
}
}
service
package com.sky.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sky.mapper.EmpMapper;
import com.sky.pojo.Emp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private EmpMapper empMapper;
public List<Emp> getEmps(int pageNum,int pageSize) {
// 开启分页查询
// pageNum:第几页 ; pageSize:一页有几条数据
PageHelper.startPage(pageNum,pageSize);
List<Emp> emps = empMapper.getEmps();
// 用PageInfo对结果进行封装
// PageInfo包含非常全面的分页属性
PageInfo page = new PageInfo(emps);
System.out.println(page);
return emps;
}
}
mapper
package com.sky.mapper;
import com.sky.pojo.Emp;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface EmpMapper {
List<Emp> getEmps();
}
mapperxml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sky.mapper.EmpMapper">
<select id="getEmps" resultType="Emp">
select * from emp
</select>
</mapper>
spring、Mybatis选一个配置
MybatisConfig.xml配置分页
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- dtd 约束 , 限制了这个文件里的标签使用-->
<!-- 配置文件的内容-->
<configuration>
<settings>
<!-- 打印sql语句-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- 驼峰自动转换-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!-- 二级缓存-->
<setting name="cacheEnabled" value="true" />
</settings>
<!-- 配置别名-->
<typeAliases>
<package name="com.sky.pojo"/>
</typeAliases>
<!--
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名
注意:pagehelper的版本是5.0之后的版本使用com.github.pagehelper.PageInterceptor这个类。
-->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定使用的数据库,自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库-->
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="true"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
<property name="pageSizeZero" value="true"/>
<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
</configuration>
spring配置分页
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations">
<array>
<value>classpath:mapper/*.xml</value>
</array>
</property>
<property name="typeAliasesPackage" value="com.isea533.ssm.model"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=hsqldb
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
版权声明:本文为Stardust_fantasy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。