Mybatis, Datatable 与 pagehelper 分页使用步骤

1. 明确需要添加和修改的文件

在这里插入图片描述

添加的文件:DatatableResult
向文件内添加内容的文件:applicationContext-dao.xmlpom.xml
修改文件中内容的文件:IndexControllerindex.jsp

1.1 添加的文件

DatatableResult 的内容:

package com.hyd.dq.util;

import java.io.Serializable;
import java.util.List;

public class DatatableResult<T>  implements Serializable {
    private Integer draw;
    private Integer recordsTotal;
    private Integer recordsFiltered;
    private List<T> data;
    private String msg; //信息
    private Integer code; //状态值

    public Integer getDraw() {
        return draw;
    }

    public void setDraw(Integer draw) {
        this.draw = draw;
    }

    public Integer getRecordsTotal() {
        return recordsTotal;
    }

    public void setRecordsTotal(Integer recordsTotal) {
        this.recordsTotal = recordsTotal;
    }

    public Integer getRecordsFiltered() {
        return recordsFiltered;
    }

    public void setRecordsFiltered(Integer recordsFiltered) {
        this.recordsFiltered = recordsFiltered;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }
}

1.2 向文件内添加内容的文件

applicationContext-dao.xml 添加的内容:
作用用于配置拦截器插件

<!-- 整合 mybatis: SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 数据源 -->
	<property name="dataSource" ref="dataSource" />
	<!-- mybatis 配置文件 -->
	<property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />

	<!-- pagehelper 配置拦截器插件 -->
	<!-- 注意其他配置 -->
	<property name="plugins">
		<array>
			<bean class="com.github.pagehelper.PageInterceptor">
				<property name="properties">
					<!--使用下面的方式配置参数,一行配置一个 -->
					<value>
						params=value1
					</value>
				</property>
			</bean>
		</array>
	</property>
</bean>

pom.xml 添加的内容:

<!--pagehelper 整合包 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>${pagehelper.version}</version>
</dependency>

1.3 修改文件中内容的文件

IndexController 添加的内容:

@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public DatatableResult<CAccCnv> index(int start, int length) {
    DatatableResult<CAccCnv> datatableResult = new DatatableResult<>();
    PageHelper.startPage(start / length + 1, length);
    List<CAccCnv> list = cAccCnvService.selectByExample();
    PageInfo<CAccCnv> pageInfo = new PageInfo<>(list);
    datatableResult.setDraw(datatableResult.getDraw());
    datatableResult.setData(pageInfo.getList());
    datatableResult.setRecordsTotal((int) pageInfo.getTotal());
    datatableResult.setRecordsFiltered(datatableResult.getRecordsTotal());
    return datatableResult;
}

index.jsp 中修改 datatable 的内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="YKenan, list"/>
    <title>list</title>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
    <link rel="stylesheet" type="text/css" href="css/dataTable.min.css"/>
    <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css"/>
    <link rel="stylesheet" type="text/css" href="css/buttons.bootstrap.min.css"/>
    <link rel="stylesheet" type="text/css" href="css/dataTables.bootstrap4.min.css"/>
    <link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css"/>
    <link rel="stylesheet" type="text/css" href="css/buttons.css"/>
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>

<body>

<br/>
<br/>

<div class="container">

    <div class="list_bg_body">

        <table class="table datatable display table-bordered table-hover" id="myTable">
            <thead>
            <tr></tr>
            </thead>
            <tbody>
            <tr></tr>
            </tbody>
        </table>

    </div>

</div>

<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="js/dataTables.min.js"></script>
<script type="text/javascript" src="js/dataTables.bootstrap4.min.js"></script>
<script type="text/javascript" src="js/jszip.min.js"></script>
<script type="text/javascript" src="js/pdfmake.min.js"></script>
<script type="text/javascript" src="js/vfs_fonts.js"></script>
<script type="text/javascript" src="js/buttons.flash.min.js"></script>
<script type="text/javascript" src="js/buttons.print.min.js"></script>
<script type="text/javascript" src="js/buttons.html5.min.js"></script>
<script type="text/javascript" src="js/style.js"></script>
<script type="text/javascript" src="js/example.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        var table = $('#myTable').DataTable({
            "ajax": {
                "url": "list",
                "type": "POST"
            },
            "bProcessing": true,
            "destroy": true,
            //使用对象数组,一定要配置columns,告诉 DataTables 每列对应的属性
            //data 这里是固定不变的,name,position,salary,office 为你数据里对应的属性
            "serverSide": true,//开启服务器模式:启用服务器分页
            "lengthChange": false,//是否允许用户改变表格每页显示的记录数
            "ordering": false,//是否允许用户排序
            "paging": true,//是否分页
            "pagingType": "full_numbers",//除首页、上一页、下一页、末页四个按钮还有页数按钮
            /*"aLengthMenu": "[5, 10, 15]",*/
            "processing": true,//是否显示处理状态
            "scrollX": true,//允许水平滚动
            /* "scrollY": "200px",
            "scrollCollapse": "true", */
            "searching": false,//是否开始本地搜索
            "stateSave": false,//刷新时是否保存状态
            "autoWidth": true,//自动计算宽度
            //"deferRender": "true",//延迟渲染
            "columns": [
                {
                    "title": "YKenan1",
                    "data": 'yKenan1',
                    "orderable": false, //关闭排序图标
                    "sClass": "text-center"
                },
                {
                    "title": "YKenan2",
                    "data": 'yKenan2',
                    "orderable": false, //关闭排序图标
                    "sClass": "text-center"
                },
                {
                    "title": "YKenan3",
                    "data": 'yKenan4',
                    "orderable": false, //关闭排序图标
                    "sClass": "text-center"
                },
                {
                    "title": "YKenan4",
                    "data": 'yKenan4',
                    "orderable": false, //关闭排序图标
                    "sClass": "text-center"
                },
                {
                    "title": "YKenan5",
                    "data": 'yKenan5',
                    "orderable": false, //关闭排序图标
                    "sClass": "text-center"
                }
            ],
            "dom": 'Bfrtip',
            "buttons": ['copy', 'excel', 'pdf', 'csv', 'print']
        });
        //给行绑定选中事件
        $('#myTable tbody').on('click', 'tr', function () {
            if ($(this).hasClass('selected')) {
                $(this).removeClass('selected');
            } else {
                table.$('tr.selected').removeClass('selected');
                $(this).addClass('selected');
            }
        });
    });
</script>

</body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值