项目结构
测试代码:https://github.com/mouday/SpringBoot-MyBaits-PageHelper
新建SpringBoot项目
$ tree
.
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ ├── Application.java
│ │ ├── bean
│ │ │ ├── RequestPage.java
│ │ │ └── User.java
│ │ ├── controller
│ │ │ └── UserController.java
│ │ ├── dao
│ │ │ └── UserDao.java
│ │ └── service
│ │ ├── UserService.java
│ │ └── impl
│ │ └── UserServiceImpl.java
│ └── resources
│ └── application.properties
└── test
依赖和配置
pom.xml
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.3
mysql
mysql-connector-java
runtime
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.13
org.projectlombok
lombok
true
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/data
spring.datasource.username=root
spring.datasource.password=123456
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
表结构
CREATE TABLE `user` (
`id` int(13) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(33) DEFAULT NULL COMMENT '姓名',
`age` int(3) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
相关代码
User.java
package com.example.demo.bean;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
RequestPage.java
package com.example.demo.bean;
import org.springframework.util.StringUtils;
/**
* 分页所需参数
*/
public class RequestPage {
private Integer page;
private Integer size;
/**
* 页码,为非必传参数,默认值为 1
*/
public Integer getPage() {
return StringUtils.isEmpty(page) ? 1 : page;
}
public void setPage(Integer page) {
this.page = page;
}
/**
* 大小,非必传参数,默认值为 10
*/
public Integer getSize() {
return StringUtils.isEmpty(size) ? 10 : size;
}
public void setSize(Integer size) {
this.size = size;
}
}
UserDao.java
package com.example.demo.dao;
import com.example.demo.bean.User;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserDao {
@Select("select * from user")
Page selectAllUserPage();
@Select("select * from user")
List selectAllUserList();
}
UserService.java
package com.example.demo.service;
import com.example.demo.bean.User;
import com.github.pagehelper.Page;
import java.util.List;
public interface UserService {
Page selectAllUserPage();
List selectAllUserList();
}
UserServiceImpl.java
package com.example.demo.service.impl;
import com.example.demo.bean.User;
import com.example.demo.dao.UserDao;
import com.example.demo.service.UserService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Override
public Page selectAllUserPage() {
return userDao.selectAllUserPage();
}
@Override
public List selectAllUserList() {
return userDao.selectAllUserList();
}
}
UserController.java
package com.example.demo.controller;
import com.example.demo.bean.RequestPage;
import com.example.demo.bean.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
UserService userService;
/**
* 返回数据列表和分页信息
* @param requestPage
* @return
*/
@GetMapping("selectAllUserPage")
public PageInfo selectAllUserPage(RequestPage requestPage){
PageHelper.startPage(requestPage.getPage(), requestPage.getSize());
Page page = userService.selectAllUserPage();
PageInfo pageInfo = new PageInfo(page);
return pageInfo;
}
/**
* 返回数据列表
* @param requestPage
* @return
*/
@GetMapping("selectAllUserList")
public List selectAllUserList(RequestPage requestPage){
PageHelper.startPage(requestPage.getPage(), requestPage.getSize());
List list = userService.selectAllUserList();
return list;
}
}
访问测试
GET http://localhost:8080/selectAllUserList?page=2&size=1
[
{
id: 2,
name: "Tom",
age: 25
}
]
执行sql
==> Preparing: SELECT count(0) FROM user
==> Parameters:
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?