Springboot-mybatis-pageHelper分页功能实现

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>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-ribbon</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-feign</artifactId>
      </dependency>
      <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>

   <!-- spring-cloud版本依赖 -->
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.SR1</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>


   <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("/answer")
    public String helloStr(){

        logger.info("res================="+ JSON.toJSONString(feginClient.getHello()));

        return "本地调用异地服务ask服务的返回值:"+JSON.toJSONString(feginClient.getHello());
    }


    /**
     *
     * @return
     */
    @RequestMapping("/test")
    public String test(){
        try{
            int a = userService.insertUser("test", "123456", "aaaaaaaa");
            return "ok"+"===="+a;

        }catch (Exception e){
            e.printStackTrace();
            return "error";
        }

    }

    /**
     *
     * @return
     */
    @RequestMapping("/demojsp")
    public ModelAndView toDemoJsp(){
        ModelAndView modelAndView =  new ModelAndView("demo");
        return modelAndView;
    }

    /**
     * 更新用户
     * @return
     */
    @RequestMapping(value = "/updateUser", method = RequestMethod.GET)
    public String upd1ateUserMethod(){
        try{
            int a = userService.updateUser(3l,"qs", "123", "北京");
            return "update===ok"+"===="+a;
        }catch (Exception e){
            e.printStackTrace();
            return "update-error";
        }
    }

    /**
     * 删除用户
     * @return
     */
    @RequestMapping(value = "/delUser/{id}", method = RequestMethod.GET)
    public String delUserMethod(@PathVariable Integer id){
        try{
            int a = userService.delUser(id.longValue());
            return "delete===ok"+"===="+a;
        }catch (Exception e){
            e.printStackTrace();
            return "delete-error";
        }
    }
    /**
     * 分页查询
     * @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";
        }
    }

}

猜你喜欢

转载自blog.csdn.net/qq_38464466/article/details/79924414