1.配置Maven,这里SpringBoot采用2.6.3
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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.1.3</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!--druid 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.8.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.15</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.配置工具类tools
public class PageResult implements Serializable{
public PageResult(long total, List rows) {
super();
this.total = total;
this.rows = rows;
}
private long total;
private List rows;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
}
3.实体类代码
package cn.itcast.pojo;
import java.io.Serializable;
public class TbUser implements Serializable {
private Long Id;
private Integer sex;
private Integer vipLevel;
private String birthYear;
public TbUser(Long id, Integer sex, Integer vipLevel, String birthYear) {
Id = id;
this.sex = sex;
this.vipLevel = vipLevel;
this.birthYear = birthYear;
}
public Long getId() {
return Id;
}
public void setId(Long id) {
Id = id;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getVipLevel() {
return vipLevel;
}
public void setVipLevel(Integer vipLevel) {
this.vipLevel = vipLevel;
}
public String getBirthYear() {
return birthYear;
}
public void setBirthYear(String birthYear) {
this.birthYear = birthYear;
}
@Override
public String toString() {
return "TbUser{" +
"Id=" + Id +
", sex=" + sex +
", vipLevel=" + vipLevel +
", birthYear='" + birthYear + '\'' +
'}';
}
}
4.Controller控制层
//控制成核心代码,可自行改进添加异常等,本案例只是示例
@RequestMapping(value="/getPhoneMess",method= RequestMethod.POST)
public PageResult getPhoneMess(@RequestBody Map<String,Object> pageParams) {
PageResult tbUserResult = tbUserService.getAllUser(pageParams);
return tbUserResult;
}
5.Service层
@Service("tbUserService")
public class TbUserService {
@Autowired
private TbUserDao tbUserDao;
public PageResult getAllUser(Map<String,Object> pageParams){
//默认
Integer pageNum =1;
Integer pageSize =10;
if(null!=pageParams.get("pageNum")){
pageNum = (Integer)pageParams.get("pageNum");
}
if(null!=pageParams.get("pageSize")){
pageSize = (Integer)pageParams.get("pageSize");
}
PageHelper.startPage(pageNum,pageSize);
Page<TbUser> pages = (Page<TbUser>)tbUserDao.getAll(pageParams);
return new PageResult(pages.getTotal(), pages.getResult());
}
}
6.Mapper&Dao层
@Mapper
@Repository("tbUserDao")
public interface TbUserDao {
public List<TbUser> getAll(Map<String,Object> pageParams);
}
7. mybatis-Xml sql语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.itcast.dao.TbUserDao" >
<resultMap id="BaseResultMap" type="cn.itcast.pojo.TbUser" >
<result column="id" property="id" jdbcType="BIGINT" />
<result column="sex" property="sex" jdbcType="TINYINT" />
<result column="vip_level" property="vipLevel" jdbcType="TINYINT" />
<result column="birth_year" property="birthYear" jdbcType="VARCHAR" />
</resultMap>
<!-- 简单分页查询 多条件 -->
<select id="getAll" parameterType="java.util.Map" resultMap="BaseResultMap">
select
id as id,
sex as sex,
vip_level as vipLevel,
birth_year as birthYear from tb_user where 1 = 1
<if test="sex != null">
and sex = #{sex,jdbcType="TINYINT}
</if>
<if test="vipLevel != null">
and vip_level = #{vipLevel,jdbcType="TINYINT"}
</if>
</select>
</mapper>