中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用MyBatis-Plus結合Layui實現分頁

發布時間:2021-08-05 11:01:43 來源:億速云 閱讀:249 作者:chen 欄目:開發技術

這篇文章主要介紹“怎么用MyBatis-Plus結合Layui實現分頁”,在日常操作中,相信很多人在怎么用MyBatis-Plus結合Layui實現分頁問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用MyBatis-Plus結合Layui實現分頁”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

MyBatis-Plus 使用簡單,內置通用 Mapper、通用 Service,僅僅通過少量配置,即可實現單表大部分 CRUD 操作。下面介紹使用 service 中的 page 方法結合 Layui 前端框架,較快速的實現分頁效果。

在 pom.xml 中引入依賴

<!--  mybatisplus -->
<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version>${mybatisplus.version}</version>
</dependency>

使用 MyBatis-Plus 內置的 mapper。首先編寫好實體類,然后編寫 mapper 接口,并繼承 BaseMapper。BaseMapper 中包含大部分的 CRUD 方法,不需要編寫 mapper.xml 。如果需要多表查詢的話,可根據自己的業務需要編寫 mapper.xml 。

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.systop.pojo.School;
import org.springframework.stereotype.Repository;

/**
 * @author: Miranda
 * @Date: 2021/8/2
 * @description:
 */
@Repository
public interface SchoolMapper extends BaseMapper<School> {

}

使用 MyBatis-Plus 內置的 service。編寫 service 接口,并繼承 IService。

import com.baomidou.mybatisplus.extension.service.IService;
import com.systop.pojo.School;

/**
 * @author: Miranda
 * @Date: 2021/8/2
 * @description:
 */
public interface SchoolService extends IService<School> {

}

編寫 service 實現類,繼承 MyBatis-Plus 的 ServiceImpl ,同時實現 SchoolService 接口。

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.systop.mapper.SchoolMapper;
import com.systop.pojo.School;
import com.systop.service.SchoolService;
import org.springframework.stereotype.Service;

/**
 * @author: Miranda
 * @Date: 2021/8/2
 * @description:
 */
@Service
public class SchoolServiceImpl extends ServiceImpl<SchoolMapper, School> implements SchoolService {

}

使用 MyBatis-plus 分頁,必須寫一個配置類

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author: Miranda
 * @Date: 2021/8/3
 * @description:
 */
@Configuration
@MapperScan("com.systop.mapper")
public class MybatisPlusConfig {
    /**
     * 分頁插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

需要一個 Layui 返回值的類

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;

/**
 * @author: Miranda
 * @Date: 2021/8/2
 * @description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LayuiPage<T> {

    private int code;
    private String msg;
    private Long count;
    private List<T> data;

    /**
     * 只有總條數和分頁數據的構造方法
     * @param count 總條數
     * @param data 分頁數據
     */
    public LayuiPage( Long count, List<T> data) {
        this.count = count;
        this.data = data;
    }
}

controller 類

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.systop.pojo.School;
import com.systop.service.SchoolService;
import com.systop.utils.LayuiPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author: Miranda
 * @Date: 2021/8/2
 * @description:
 */
@Controller
public class SchoolController {

    @Autowired
    private SchoolService schoolService;
   
    @RequestMapping("schoolList")
    @ResponseBody
    public LayuiPage schoolList(int page,int limit){
        //傳入分頁的屬性
        Page<School> pager = new Page<>(page,limit);
        //分頁查詢學校信息
        IPage<School> schoolPage = schoolService.page(pager, new QueryWrapper<>());
        // schoolPage.getTotal() 信息總條數
        // schoolPage.getRecords() 分頁數據
        return new LayuiPage(schoolPage.getTotal(),schoolPage.getRecords());
    }
}

Layui 頁面代碼實現

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="utf-8">
 <title>學校信息管理</title>
 <meta name="renderer" content="webkit">
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
 <!-- 引入layuiadmin的樣式 -->
 <link rel="stylesheet" href="../layuiadmin/layui/css/layui.css" rel="external nofollow"  th:href="@{layuiadmin/layui/css/layui.css}" rel="external nofollow"  media="all">
 <link rel="stylesheet" href="../layuiadmin/style/admin.css" rel="external nofollow"  th:href="@{layuiadmin/style/admin.css}" rel="external nofollow"   media="all">
</head>
<body>
 <div class="layui-fluid">
  <div class="layui-row layui-col-space15">
   <div class="layui-col-md12">
    <div class="layui-card">
     <div class="layui-card-body">
      <!-- id="test-table-simple" -->
      <table class="layui-table" id="test-table-simple" lay-filter="curd" ></table>
     </div>
    </div>
   </div>
  </div>
 </div>
 <script src="../layuiadmin/layui/layui.js" th:src="@{layuiadmin/layui/layui.js}"></script>
 <script>
  layui.use(['layer', 'table', 'element','form', 'layedit','util'], function(){
   var layer = layui.layer, //彈層
     table = layui.table, //表格
     element = layui.element, //元素操作
     form = layui.form,
     layedit = layui.layedit,
     util = layui.util;
   table.render({
    elem: '#test-table-simple',
    url: 'schoolList',
    method: 'post',
    cellMinWidth: 80, //全局定義常規單元格的最小寬度
    cols: [
     [{type: 'checkbox'},
     {field: 'sid', title: 'ID', sort: true, align: 'center', width:80},
     {field: 'sname', title: '名稱', align: 'center'},
     {field: 'arrangement', title: '層次', align: 'center'},
     {title: '操作', align: 'center', toolbar: '#bar', width:150, fixed: 'right'}]
    ],
    // field 的值和實體類屬性名稱保持一致,如果數據表格沒有渲染,可以看看瀏覽器解析后的名稱
    done: function(res){
    // 在控制臺輸出后臺傳送的數據
     console.log(res);
    },
    page: true, //是否顯示分頁
    limits: [5, 7, 10],
    limit: 5 //每頁默認顯示的數量
   });
  });
 </script>
</body>
</html>

頁面效果如下:

怎么用MyBatis-Plus結合Layui實現分頁

怎么用MyBatis-Plus結合Layui實現分頁

排雷:
剛開始定義 Layui 返回數據類的時候,將 code 定義成 Integer 類型,并且在 controller 類中使用的是兩個參數的構造方法,導致傳給前臺數據中 code 的值是 null,所以數據渲染一直報 “返回的數據狀態異常”。

解決:
將 code 定義成 int 類型,或者在 controller 中使用時,傳四個參數。

到此,關于“怎么用MyBatis-Plus結合Layui實現分頁”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

增城市| 沁阳市| 临高县| 柳州市| 遂宁市| 绥化市| 江华| 延津县| 峨边| 齐河县| 南皮县| 通州区| 河源市| 保德县| 安徽省| 宜章县| 临沧市| 邢台县| 泰兴市| 卢氏县| 普宁市| 万山特区| 中阳县| 高青县| 昭平县| 白银市| 金昌市| 金堂县| 雷波县| 永州市| 吉安市| 平陆县| 双柏县| 衡山县| 定州市| 丽江市| 池州市| 温宿县| 阳江市| 油尖旺区| 琼结县|