pagehelper整合时遇到的坑: 之前我用的是这样的格式ajax接受 但是使用pagehelper之后数据格式很明显发生了变化 所以需要拿到里面的值 1、pom文件引入
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- springboot-web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>2、配置文件引入
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver3、Mapper代码 这里使用mybatis注解,没有使用mapper注解,启动类里面包含MapperScan注解,所以这里不做注解,自动扫描同级下的包之中的类并自动加载到容器里面
public interface UserMapper { @Select("SELECT * FROM USERS WHERE NAME = #{name}") User findByName(@Param("name") String name); @Insert("INSERT INTO USERS(NAME, AGE) VALUES(#{name}, #{age})") int insert(@Param("name") String name, @Param("age") Integer age); }4、启动类
//@ComponentScan(basePackages = { "com.hxz.controller" }) @MapperScan("com.hxz.mapper") //@EnableAutoConfiguration @SpringBootApplication public class MybatisApp { public static void main(String[] args) { SpringApplication.run(MybatisApp.class, args); } }5、pageHelper(分页插件) pageHelper是一款好用的开源免费的 Mybatis 第三方物理分页插件 物理分页,之前在ssm框架的使用里面就提到过这个插件 支持常见的 12 种数据库。Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等 支持多种分页方式 支持常见的 RowBounds(PageRowBounds),PageHelper.startPage 方法调用,Mapper 接口参数调用 依赖:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- springboot-web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- springboot 整合 pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> </dependencies>配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver logging.level.com.example.demo.dao=DEBUG pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql pagehelper.page-size-zero=trueEntity层:(这里使用了@Data注解,data注解来源与Lombok,可以减少代码中大量的set、get方法,大量减少冗余代码) data注解
@Data public class User { private Integer id; private String name; private Integer age; }Mapper层
public interface UserMapper { @Select("SELECT * FROM USERS ") List<User> findUserList(); }Service层
@Service public class UserService { @Autowired private UserMapper userMapper; /** * page 当前页数<br> * size 当前展示的数据<br> * @param page * @param size * @return */ public PageInfo<User> findUserList(int page, int size) { // 开启分页插件,放在查询语句上面 PageHelper.startPage(page, size); List<User> listUser = userMapper.findUserList(); // 封装分页之后的数据 PageInfo<User> pageInfoUser = new PageInfo<User>(listUser); return pageInfoUser; } }Controller层
@RestController public class IndexController { @Autowired private UserService userService; @RequestMapping("/findUserList") public PageInfo<User> findUserList(int page, int size) { return userService.findUserList(page, size); } }