IDE:IDEA;
JDK:1.8;
springboot:1.5.9.RELEASE;
首先是基于springBoot和mybatis的项目,在pom.xml中添加依赖:
<!--pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo2</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
<scope>runtime</scope>
</dependency>
<!--pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- Provided -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我是基于注解的mybatis:
application.properties配置如下
####访问端口#####
server.port=8222
#连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/databasename?characterEncoding=utf-8
#数据库账户
spring.datasource.username=username
#数据库密码
spring.datasource.password=password
#数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
接下来在userMapper中添加分页查询语句
import com.example.demo.pojo.User;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.*;
@Mapper
public interface UserMapper {
/**
* 分页查询数据
* @return
*/
@Select("select id , userName , homeTel, homeAddress from T_USER")
Page<User> findByPage();
}
接下来是userService
import com.example.demo.pojo.User;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
/**
* Created by qs on 2018/4/10.
*/
public interface UserService {
public Page<User> findByPage(int pageNo, int pageSize);
}
userServiceImpl
import com.example.demo.mapper.UserMapper;
import com.example.demo.pojo.PageInfo;
import com.example.demo.pojo.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
/**
* Created by qs on 2018/4/10.
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> findByPage(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
return userMapper.findByPage();
}
}
实现类里是把当前页和页数设置进了PageHelper;所以UserMaper中的查询语句就是简单的查询所有就可以了;
Controller中调用
import com.alibaba.fastjson.JSON;
import com.example.demo.pojo.PageInfo;
import com.example.demo.pojo.User;
import com.example.demo.service.FeginClient;
import com.example.demo.service.UserService;
import com.github.pagehelper.Page;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import static org.apache.coyote.http11.Constants.a;
/**
* Created by qs on 2018/4/3.
*/
@RequestMapping("/user")
@RestController
@EnableAutoConfiguration
public class UserController {
@Autowired
private UserService userService;
private final static Logger logger = LoggerFactory.getLogger(apiController.class);
/**
* 分页查询
* @return
*/
@RequestMapping(value = "/userpage/{pageNo}/{pageSize}", method = RequestMethod.GET)
public String findUserByPageMethod(@PathVariable int pageNo,@PathVariable int pageSize){
try{
Page<User> users = userService.findByPage(pageNo,pageSize);
PageInfo<User> pageInfo = new PageInfo<>(users);
return JSON.toJSONString(pageInfo);
}catch (Exception e){
e.printStackTrace();
return "findByPage-error";
}
}
}