Springboot集成mybatis通用Mapper与分页插件PageHelper
程序员文章站
2022-07-15 10:47:19
...
插件介绍:
- 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及
Example
相关的单表操作。 - PageHelper则提供通用的分页查询功能,使用它们可以很方便的进行开发,可以节省开发人员大量的时间。
导入依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 通用mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
</dependencies>
属性配置:
######### 数据库配置 ##########
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/bai?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
######### Mybatis自身配置 ##########
mybatis.typeAliasesPackage=com.example.demo.model
mybatis.mapperLocations=classpath:mapper/**/*.xml
# 驼峰命名规范
mybatis.configuration.map-underscore-to-camel-case=true
# 配置控制台打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
######### 通用Mapper ##########
# 主键自增回写方法,默认值MYSQL,详细说明请看文档
mapper.identity=MYSQL
mapper.mappers=tk.mybatis.mapper.common.BaseMapper
# 设置 insert 和 update 中,是否判断字符串类型!=''
mapper.not-empty=true
######### 分页插件 ##########
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=false
pagehelper.support-methods-arguments=true
设置MyMapper:
package com.example.demo.MyMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> {
}
实体类:
package com.example.demo.model;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
@Data
@Table(name = "shiro_user")
public class ShiroUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
//用户登录账号
private String userAccount;
//用户登录密码
private String userPassword;
//用户名
private String userName;
//用户状态: 1=正常 2=禁用
private Integer userStatus;
//创建日期
private Date createdDate;
//最近登录时间
private Date lastLoginTime;
//最近更新时间
private Date updateTime;
//备注
private String userDesc;
}
dao层:
package com.example.demo.dao;
import com.example.demo.MyMapper.MyMapper;
import com.example.demo.model.ShiroUser;
public interface ShiroUserMapper extends MyMapper<ShiroUser> {
}
service层:
package com.example.demo.service;
import com.example.demo.model.ShiroUser;
public interface ShiroUserService {
List<ShiroUser> listUser();
}
package com.example.demo.service.impl;
import com.example.demo.dao.ShiroUserMapper;
import com.example.demo.service.ShiroUserService;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ShiroUserServiceImpl implements ShiroUserService {
@Autowired
private ShiroUserMapper shiroUserMapper;
// 分页以及排序
@Override
public Object listPageUser() {
return PageHelper.startPage(1, 5).setOrderBy("user_id desc").doSelectPageInfo(() -> shiroUserMapper.selectAll());
}
}
controller层:
package com.example.demo.controller;
import com.example.demo.service.ShiroUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("demo")
public class ShiroUserController {
@Autowired
private ShiroUserService shiroUserService;
@RequestMapping("pageUser")
public Object pageUser(){
return shiroUserService.listPageUser();
}
}
启动类:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
推荐阅读
-
Springboot集成通用Mapper与Pagehelper,实现mybatis+Druid的多数据源配置
-
SpringBoot集成mybatis(配置通用mapper)并且使用druid作为数据库连接池
-
Springboot集成mybatis通用Mapper与分页插件PageHelper
-
springboot 整合 Mybatis的分页插件 PageHelper
-
SpringBoot整合Mybatis配置pagehelper分页插件
-
springboot整合mybatis和分页插件pagehelper
-
SpringBoot整合Mybatis分页插件PageHelper
-
springboot整合mybatis分页插件PageHelper
-
Springboot整合Mybatis使用分页 PageHelper分页插件
-
【SpringBoot】SpringBoot整合MyBatis,以及配置PageHelper分页插件