Интеграция с PageHelper подробных примеров SpringBoot

Интеграция с PageHelper подробных примеров SpringBoot

1.PageHelper Профиль

PageHelper официальный адрес сайта:

https://pagehelper.github.io/

Аннотация: com.github.pagehelper.PageHelper является простой в использовании бесплатно с открытым исходным кодом физической страницы Mybatis сторонних плагинов.

PageHelper является простой в использовании бесплатно с открытым исходным кодом физической страницы Mybatis сторонних плагинов, на самом деле, я не хочу, чтобы добавить слово легко, но похвалить бесплатно с открытым исходным кодом плагина автор возвышенного духа, я, не колеблясь, чтобы добавить удобный как слово хвалы.

Первоначально думали, что нумерация страниц плагин, он должен быть очень простым, но многие PageHelper сложнее, чем я думал, что это будет, это очень мощный и очень тщательно, мощный пользователь может не должны быть настолько универсальны, тщательное обращение к возможному двойного назначения , Но, я думаю, как постраничной плагина для выполнения этой задачи является фундаментальными физическими страницы, многие других умные не нужны, чтобы держать его достаточно глуп настолько глуп, жаргона называется глупо, просто красиво.

Мы кратко представить основной смысл и использование параметров конфигурации PageHelper, фокусируется на PageHelper как реализация принципа Mybatis постраничных плагин.

ZvCzAx.png

2.SpringBoot пример интеграции PageHelper

Структура выглядит следующим образом:

ZvPHat.png

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.home</groupId>
        <artifactId>springbootdemo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>

        <name>springbootdemo</name>
        <description>Demo project for Spring Boot</description>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.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.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>


            <!--mybatis与mysql-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <!--druid依赖-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.25</version>
            </dependency>
            <!--redis依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>

            <!--pageHelper-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.3</version>
            </dependency>


            <!--lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

            <!-- 热部署模块 -->
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
            </dependency>

        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork>
                    </configuration>
                </plugin>
            </plugins>
        </build>

    </project>
Present Контроллер для заказа:
package com.home.orderpresentdemo.controller;

import com.github.pagehelper.PageInfo;
import com.home.orderpresentdemo.entity.OrderPresentInfo;
import com.home.orderpresentdemo.service.OrderPresentInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
@Controller
@RequestMapping("/")
public class OrderPresentController {

    @Autowired
    private OrderPresentInfoService orderPresentService;


    /**
     * 跳转到应用列表页面
     * @param pageNo 要显示第几页内容
     * @param pageSize 一页显示多少条
     * @return
     */
    @RequestMapping("/list")
    @ResponseBody
    public  PageInfo<OrderPresentInfo> list(@RequestParam(value="pageNo",defaultValue="1")int pageNo, @RequestParam(value="pageSize",defaultValue="10")int pageSize) {
        PageInfo<OrderPresentInfo> page = orderPresentService.getAllOrderPresentForPage(pageNo,pageSize);
        return  page;
    }





    @RequestMapping("/")
    public String helloHtml(HashMap<String, Object> map, Model model) {
        model.addAttribute("say","欢迎欢迎,热烈欢迎");
        map.put("hello", "欢迎进入HTML页面");
        return "index";
    }

    @RequestMapping("/goToAdd")
    public String goToAdd() {
        return "add";
    }

    @RequestMapping("/add")
    public String add(OrderPresentInfo orderPresent) {
        return "添加成功";
    }

}
Настоящий приказ Служба информации:
package com.home.orderpresentdemo.service;

import com.github.pagehelper.PageInfo;
import com.home.orderpresentdemo.entity.OrderPresentInfo;

import java.util.List;

public interface OrderPresentInfoService {
    List<OrderPresentInfo> getAllOrderPresent();

    PageInfo<OrderPresentInfo> getAllOrderPresentForPage(int pageNo, int pageSize);
}
OrderPresentInfoServiceImpl:
package com.home.orderpresentdemo.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.home.orderpresentdemo.entity.OrderPresentInfo;
import com.home.orderpresentdemo.mapper.OrderPresentInfoMapper;
import com.home.orderpresentdemo.service.OrderPresentInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class OrderPresentInfoServiceImpl implements OrderPresentInfoService {


    @Autowired
    private OrderPresentInfoMapper orderPresentMapper;

    @Override
    public List<OrderPresentInfo> getAllOrderPresent() {
        return orderPresentMapper.getAllOrderPresent();
    }

    @Override
    public PageInfo<OrderPresentInfo> getAllOrderPresentForPage(int pageNo, int pageSize) {

        PageHelper.startPage(pageNo,pageSize);
        List<OrderPresentInfo> allOrderPresentList = orderPresentMapper.getAllOrderPresent();
        PageInfo<OrderPresentInfo> pageInfo = new PageInfo<>(allOrderPresentList);
        return pageInfo;
    }
}
Присутствует Информация для заказа:
package com.home.orderpresentdemo.entity;

import java.math.BigDecimal;
import java.util.Date;

public class OrderPresentInfo {
    private Long id;

    private String activityName;

    private Date beginTime;

    private Date endTime;

    private Integer activityStoresSelectType;

    private String activityStoresIds;

    private Integer memberLevelSelectType;

    private String memberLevelIds;

    private BigDecimal activityOrderConsume;

    private String paymentChannelIds;

    private Integer equityType;

    private Long couponId;

    private Long luckyTurningId;

    private Integer activityStatus;

    private Date createTime;

    private Date updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName == null ? null : activityName.trim();
    }

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getActivityStoresSelectType() {
        return activityStoresSelectType;
    }

    public void setActivityStoresSelectType(Integer activityStoresSelectType) {
        this.activityStoresSelectType = activityStoresSelectType;
    }

    public String getActivityStoresIds() {
        return activityStoresIds;
    }

    public void setActivityStoresIds(String activityStoresIds) {
        this.activityStoresIds = activityStoresIds == null ? null : activityStoresIds.trim();
    }

    public Integer getMemberLevelSelectType() {
        return memberLevelSelectType;
    }

    public void setMemberLevelSelectType(Integer memberLevelSelectType) {
        this.memberLevelSelectType = memberLevelSelectType;
    }

    public String getMemberLevelIds() {
        return memberLevelIds;
    }

    public void setMemberLevelIds(String memberLevelIds) {
        this.memberLevelIds = memberLevelIds == null ? null : memberLevelIds.trim();
    }

    public BigDecimal getActivityOrderConsume() {
        return activityOrderConsume;
    }

    public void setActivityOrderConsume(BigDecimal activityOrderConsume) {
        this.activityOrderConsume = activityOrderConsume;
    }

    public String getPaymentChannelIds() {
        return paymentChannelIds;
    }

    public void setPaymentChannelIds(String paymentChannelIds) {
        this.paymentChannelIds = paymentChannelIds == null ? null : paymentChannelIds.trim();
    }

    public Integer getEquityType() {
        return equityType;
    }

    public void setEquityType(Integer equityType) {
        this.equityType = equityType;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public Long getLuckyTurningId() {
        return luckyTurningId;
    }

    public void setLuckyTurningId(Long luckyTurningId) {
        this.luckyTurningId = luckyTurningId;
    }

    public Integer getActivityStatus() {
        return activityStatus;
    }

    public void setActivityStatus(Integer activityStatus) {
        this.activityStatus = activityStatus;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
Present Mapper Информация для заказа:
package com.home.orderpresentdemo.mapper;


import com.home.orderpresentdemo.entity.OrderPresentInfo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface OrderPresentInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(OrderPresentInfo record);

    int insertSelective(OrderPresentInfo record);

    OrderPresentInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(OrderPresentInfo record);

    int updateByPrimaryKey(OrderPresentInfo record);

    List<OrderPresentInfo> getAllOrderPresent();
}
OrderPresentInfoMapper.xml:
<?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="com.home.orderpresentdemo.mapper.OrderPresentInfoMapper" >
  <resultMap id="BaseResultMap" type="com.home.orderpresentdemo.entity.OrderPresentInfo" >
    <id column="ID" property="id" jdbcType="BIGINT" />
    <result column="ACTIVITY_NAME" property="activityName" jdbcType="VARCHAR" />
    <result column="BEGIN_TIME" property="beginTime" jdbcType="TIMESTAMP" />
    <result column="END_TIME" property="endTime" jdbcType="TIMESTAMP" />
    <result column="ACTIVITY_STORES_SELECT_TYPE" property="activityStoresSelectType" jdbcType="INTEGER" />
    <result column="ACTIVITY_STORES_IDS" property="activityStoresIds" jdbcType="VARCHAR" />
    <result column="MEMBER_LEVEL_SELECT_TYPE" property="memberLevelSelectType" jdbcType="INTEGER" />
    <result column="MEMBER_LEVEL_IDS" property="memberLevelIds" jdbcType="VARCHAR" />
    <result column="ACTIVITY_ORDER_CONSUME" property="activityOrderConsume" jdbcType="DECIMAL" />
    <result column="PAYMENT_CHANNEL_IDS" property="paymentChannelIds" jdbcType="VARCHAR" />
    <result column="EQUITY_TYPE" property="equityType" jdbcType="INTEGER" />
    <result column="COUPON_ID" property="couponId" jdbcType="BIGINT" />
    <result column="LUCKY_TURNING_ID" property="luckyTurningId" jdbcType="BIGINT" />
    <result column="ACTIVITY_STATUS" property="activityStatus" jdbcType="INTEGER" />
    <result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP" />
    <result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Base_Column_List" >
    ID, ACTIVITY_NAME, BEGIN_TIME, END_TIME, ACTIVITY_STORES_SELECT_TYPE, ACTIVITY_STORES_IDS, 
    MEMBER_LEVEL_SELECT_TYPE, MEMBER_LEVEL_IDS, ACTIVITY_ORDER_CONSUME, PAYMENT_CHANNEL_IDS, 
    EQUITY_TYPE, COUPON_ID, LUCKY_TURNING_ID, ACTIVITY_STATUS, CREATE_TIME, UPDATE_TIME
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from dss_wsh_order_present_info
    where ID = #{id,jdbcType=BIGINT}
  </select>
  <select id="getAllOrderPresent" resultMap="BaseResultMap"   >
    select
    <include refid="Base_Column_List" />
    from dss_wsh_order_present_info
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from dss_wsh_order_present_info
    where ID = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.home.orderpresentdemo.entity.OrderPresentInfo" >
    insert into dss_wsh_order_present_info (ID, ACTIVITY_NAME, BEGIN_TIME, 
      END_TIME, ACTIVITY_STORES_SELECT_TYPE, ACTIVITY_STORES_IDS, 
      MEMBER_LEVEL_SELECT_TYPE, MEMBER_LEVEL_IDS, 
      ACTIVITY_ORDER_CONSUME, PAYMENT_CHANNEL_IDS, 
      EQUITY_TYPE, COUPON_ID, LUCKY_TURNING_ID, 
      ACTIVITY_STATUS, CREATE_TIME, UPDATE_TIME
      )
    values (#{id,jdbcType=BIGINT}, #{activityName,jdbcType=VARCHAR}, #{beginTime,jdbcType=TIMESTAMP}, 
      #{endTime,jdbcType=TIMESTAMP}, #{activityStoresSelectType,jdbcType=INTEGER}, #{activityStoresIds,jdbcType=VARCHAR}, 
      #{memberLevelSelectType,jdbcType=INTEGER}, #{memberLevelIds,jdbcType=VARCHAR}, 
      #{activityOrderConsume,jdbcType=DECIMAL}, #{paymentChannelIds,jdbcType=VARCHAR}, 
      #{equityType,jdbcType=INTEGER}, #{couponId,jdbcType=BIGINT}, #{luckyTurningId,jdbcType=BIGINT}, 
      #{activityStatus,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.home.orderpresentdemo.entity.OrderPresentInfo" >
    insert into dss_wsh_order_present_info
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        ID,
      </if>
      <if test="activityName != null" >
        ACTIVITY_NAME,
      </if>
      <if test="beginTime != null" >
        BEGIN_TIME,
      </if>
      <if test="endTime != null" >
        END_TIME,
      </if>
      <if test="activityStoresSelectType != null" >
        ACTIVITY_STORES_SELECT_TYPE,
      </if>
      <if test="activityStoresIds != null" >
        ACTIVITY_STORES_IDS,
      </if>
      <if test="memberLevelSelectType != null" >
        MEMBER_LEVEL_SELECT_TYPE,
      </if>
      <if test="memberLevelIds != null" >
        MEMBER_LEVEL_IDS,
      </if>
      <if test="activityOrderConsume != null" >
        ACTIVITY_ORDER_CONSUME,
      </if>
      <if test="paymentChannelIds != null" >
        PAYMENT_CHANNEL_IDS,
      </if>
      <if test="equityType != null" >
        EQUITY_TYPE,
      </if>
      <if test="couponId != null" >
        COUPON_ID,
      </if>
      <if test="luckyTurningId != null" >
        LUCKY_TURNING_ID,
      </if>
      <if test="activityStatus != null" >
        ACTIVITY_STATUS,
      </if>
      <if test="createTime != null" >
        CREATE_TIME,
      </if>
      <if test="updateTime != null" >
        UPDATE_TIME,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=BIGINT},
      </if>
      <if test="activityName != null" >
        #{activityName,jdbcType=VARCHAR},
      </if>
      <if test="beginTime != null" >
        #{beginTime,jdbcType=TIMESTAMP},
      </if>
      <if test="endTime != null" >
        #{endTime,jdbcType=TIMESTAMP},
      </if>
      <if test="activityStoresSelectType != null" >
        #{activityStoresSelectType,jdbcType=INTEGER},
      </if>
      <if test="activityStoresIds != null" >
        #{activityStoresIds,jdbcType=VARCHAR},
      </if>
      <if test="memberLevelSelectType != null" >
        #{memberLevelSelectType,jdbcType=INTEGER},
      </if>
      <if test="memberLevelIds != null" >
        #{memberLevelIds,jdbcType=VARCHAR},
      </if>
      <if test="activityOrderConsume != null" >
        #{activityOrderConsume,jdbcType=DECIMAL},
      </if>
      <if test="paymentChannelIds != null" >
        #{paymentChannelIds,jdbcType=VARCHAR},
      </if>
      <if test="equityType != null" >
        #{equityType,jdbcType=INTEGER},
      </if>
      <if test="couponId != null" >
        #{couponId,jdbcType=BIGINT},
      </if>
      <if test="luckyTurningId != null" >
        #{luckyTurningId,jdbcType=BIGINT},
      </if>
      <if test="activityStatus != null" >
        #{activityStatus,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
      </if>
      <if test="updateTime != null" >
        #{updateTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.home.orderpresentdemo.entity.OrderPresentInfo" >
    update dss_wsh_order_present_info
    <set >
      <if test="activityName != null" >
        ACTIVITY_NAME = #{activityName,jdbcType=VARCHAR},
      </if>
      <if test="beginTime != null" >
        BEGIN_TIME = #{beginTime,jdbcType=TIMESTAMP},
      </if>
      <if test="endTime != null" >
        END_TIME = #{endTime,jdbcType=TIMESTAMP},
      </if>
      <if test="activityStoresSelectType != null" >
        ACTIVITY_STORES_SELECT_TYPE = #{activityStoresSelectType,jdbcType=INTEGER},
      </if>
      <if test="activityStoresIds != null" >
        ACTIVITY_STORES_IDS = #{activityStoresIds,jdbcType=VARCHAR},
      </if>
      <if test="memberLevelSelectType != null" >
        MEMBER_LEVEL_SELECT_TYPE = #{memberLevelSelectType,jdbcType=INTEGER},
      </if>
      <if test="memberLevelIds != null" >
        MEMBER_LEVEL_IDS = #{memberLevelIds,jdbcType=VARCHAR},
      </if>
      <if test="activityOrderConsume != null" >
        ACTIVITY_ORDER_CONSUME = #{activityOrderConsume,jdbcType=DECIMAL},
      </if>
      <if test="paymentChannelIds != null" >
        PAYMENT_CHANNEL_IDS = #{paymentChannelIds,jdbcType=VARCHAR},
      </if>
      <if test="equityType != null" >
        EQUITY_TYPE = #{equityType,jdbcType=INTEGER},
      </if>
      <if test="couponId != null" >
        COUPON_ID = #{couponId,jdbcType=BIGINT},
      </if>
      <if test="luckyTurningId != null" >
        LUCKY_TURNING_ID = #{luckyTurningId,jdbcType=BIGINT},
      </if>
      <if test="activityStatus != null" >
        ACTIVITY_STATUS = #{activityStatus,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        CREATE_TIME = #{createTime,jdbcType=TIMESTAMP},
      </if>
      <if test="updateTime != null" >
        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where ID = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.home.orderpresentdemo.entity.OrderPresentInfo" >
    update dss_wsh_order_present_info
    set ACTIVITY_NAME = #{activityName,jdbcType=VARCHAR},
      BEGIN_TIME = #{beginTime,jdbcType=TIMESTAMP},
      END_TIME = #{endTime,jdbcType=TIMESTAMP},
      ACTIVITY_STORES_SELECT_TYPE = #{activityStoresSelectType,jdbcType=INTEGER},
      ACTIVITY_STORES_IDS = #{activityStoresIds,jdbcType=VARCHAR},
      MEMBER_LEVEL_SELECT_TYPE = #{memberLevelSelectType,jdbcType=INTEGER},
      MEMBER_LEVEL_IDS = #{memberLevelIds,jdbcType=VARCHAR},
      ACTIVITY_ORDER_CONSUME = #{activityOrderConsume,jdbcType=DECIMAL},
      PAYMENT_CHANNEL_IDS = #{paymentChannelIds,jdbcType=VARCHAR},
      EQUITY_TYPE = #{equityType,jdbcType=INTEGER},
      COUPON_ID = #{couponId,jdbcType=BIGINT},
      LUCKY_TURNING_ID = #{luckyTurningId,jdbcType=BIGINT},
      ACTIVITY_STATUS = #{activityStatus,jdbcType=INTEGER},
      CREATE_TIME = #{createTime,jdbcType=TIMESTAMP},
      UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP}
    where ID = #{id,jdbcType=BIGINT}
  </update>
</mapper>
SqlMapperConfig.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!-- 对在此配置文件下的所有cache进行全局性开/关设置 true|false true -->
        <setting name="cacheEnabled" value="true" />
        <!-- 全局性设置懒加载。如果设为‘关',则所有相关联的都会被初始化加载。 -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 当设置为‘开’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 -->
        <setting name="aggressiveLazyLoading" value="true" />
        <!-- 允许和不允许单条语句返回多个数据集(取决于驱动需求) -->
        <setting name="multipleResultSetsEnabled" value="true" />
        <!-- 使用列标签代替列名称。不用的驱动器有不同的作法。 -->
        <setting name="localCacheScope" value="STATEMENT" />
        <!-- 允许JDBC生成主键。需要驱动器支持.如果设为了true,这个设置将强制使用被生成的主键, 有一些驱动器不兼容不过仍然可以执行。 -->
        <setting name="useGeneratedKeys" value="true" />
        <!-- 指定MyBatis是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,NONE没有嵌套的结果。 FULL将自动映射所有复杂的结果。 -->
        <setting name="autoMappingBehavior" value="PARTIAL" />
        <!-- 配置和设定执行器,SIMPLE执行器执行其它语句。REUSE执行器可能重复使用preparedstatements语句,BATCH执行器可以重复执行语句和批量更新。 -->
        <setting name="defaultExecutorType" value="SIMPLE" />
        <!-- 设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时. 正整数 -->
        <setting name="defaultStatementTimeout" value="5000" />
        <setting name="jdbcTypeForNull" value="OTHER"/>
        <setting name="logImpl" value="LOG4J"/>
    </settings>

</configuration>
index.html (проверено здесь, чтобы написать более свободно и могут быть проигнорированы):
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>第一个HTML页面</title>
</head>
<body>
<h1>Hello Spring Boot!!!</h1>

<a th:href="@{/goToAdd}">添加</a>
<p th:text="${hello}"></p>
<div>
    <p th:text="${say}"></p>
</div>
</body>
</html>
application.properties:
#server.port=80
logging.level.org.springframework=DEBUG
#springboot   mybatis
#jiazai mybatis peizhiwenjian
mybatis.mapper-locations = classpath:mapper/*Mapper.xml
#mybatis.config-location = classpath:mybatis/sqlMapConfig.xml
#mybatis.type-aliases-package = com.demo.bean

#shujuyuan
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/dss_wshop?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = root

spring.thymeleaf.prefix=classpath:/templates/

#禁止thymeleaf缓存(建议:开发环境设置为false,生成环境设置为true)
spring.thymeleaf.cache=false


#pagehelper分页插件配置 以下属性不加也可以实现分页功能
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
Полученные результаты представлены следующим образом:

ZvicLj.png

рекомендация

отwww.cnblogs.com/charlypage/p/11220755.html