(血和泪的成果)使用PageHelper分页插件进行后台分页

前些天按照视频里讲的做一个分页功能,可是不知道什么原因在页面就是不显示数据。昨天碰巧发现了一个分页插件,只需一些设置就可以完成分页,非常方便。不过由于是新手,其中遇到了很多很多麻烦,不过幸好得到大神的帮助,最终完成了功能,非常感谢他十分耐心地帮我,给你一个么么哒(づ ̄ 3 ̄)づ
没想到做一个小小的分页功能也有这么多的不懂的地方,感觉要学的东西太多太多,加油努力学习吧~

首先给出项目Github地址:Mybatis通用分页插件
然后按步骤给出各部分代码(其他无关代码和配置文件省略)

一、SqlMapConfig.xml

此处要导入两个jar包:pagehelper-5.0.0.jarjsqlparser-0.9.5.jar

<!-- 配置分页插件 -->
<plugins>
    <plugin interceptor="com.github.pagehelper.PageHelper">
        <!-- 指定数据库方言 -->
        <property name="dialect" value="mysql"/>
    </plugin>
</plugins>

二、po

Country.java

public class Country {
    private Integer id;
    private String countryname;
    private String countrycode;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getCountryname() {
        return countryname;
    }
    public void setCountryname(String countryname) {
        this.countryname = countryname == null ? null : countryname.trim();
    }
    public String getCountrycode() {
        return countrycode;
    }
    public void setCountrycode(String countrycode) {
        this.countrycode = countrycode == null ? null : countrycode.trim();
    }
    @Override
    public String toString() {
        // return (this.getId()+" "+this.getCountryname()+" "+this.getCountrycode());
        return "Country [id=" + id +", countryname=" + countryname + ", countrycode=" + countrycode + "]";
    }
}

EasyUIDataGridResult.java

public class EasyUIDataGridResult {
    // easyUI dataGrid 返回结果封装
    Long total;    // 总的记录数
    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;
    }
}

三、service

CountryService.java

public interface CountryService {
    public EasyUIDataGridResult getCountryList(int page, int rows);
}

CountryServiceImpl.java

@Service
public class CountryServiceImpl implements CountryService{
    @Autowired
    private CountryMapper countryMapper;

    public EasyUIDataGridResult getCountryList(int page, int rows) {

        //分页处理
        PageHelper.startPage(page, rows);

        //查询结果
        CountryExample example = new CountryExample();
        List<Country> list = countryMapper.selectByExample(example);

        //获取分页信息
        PageInfo<Country> info = new PageInfo<>(list);
        EasyUIDataGridResult result = new EasyUIDataGridResult();
        long total = info.getTotal();

        //封装分页信息
        List<Country> row = info.getList();
        result.setRows(row);
        result.setTotal(total);
        return result;
    }
}

四、controller

CountryController.java

@Controller
public class CountryController {
    @Autowired
    private CountryService countryService;

    @RequestMapping("/country/list")
    @ResponseBody
    private EasyUIDataGridResult getItemList(Integer page, Integer rows){
        EasyUIDataGridResult countrylists = countryService.getCountryList(page,rows);
        return countrylists;
    }
}

五、springmvc.xml

在原来的基础上增加json convertors,以便将List集合转换成json对象,可以使用fastjson或者jackson库,二者择其一就好
注意Jar的版本,我选择的是jackson-core-2.8.7.jar jackson-databind-2.8.7.jar jackson-annotations-2.8.7.jar,三者缺一不可,而且不同的版本可能会导致一些异常

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
    </mvc:message-converters>
</mvc:annotation-driven>

六、jsp

countryList.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
    <head>
        <title>列表分页展示</title>
        <!--必须引入jQuery和easyUI库-->
        <link rel="stylesheet" type="text/css" href="../js/jquery-easyui-1.4.1/themes/default/easyui.css" />
        <link rel="stylesheet" type="text/css" href="../js/jquery-easyui-1.4.1/themes/icon.css" />
        <link rel="stylesheet" type="text/css" href="../css/taotao.css" />
        <script type="text/javascript" src="../js/jquery-easyui-1.4.1/jquery.min.js"></script>
        <script type="text/javascript" src="../js/jquery-easyui-1.4.1/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="../js/jquery-easyui-1.4.1/locale/easyui-lang-zh_CN.js"></script>
        <script type="text/javascript" src="../js/common.js"></script>
    </head>

    <body>
        <table id="dg"></table>
    </body>
    
    <script>
        $(document).ready(function () {
            $('#dg').datagrid({
                url:'/country/list',
                pagination: true,
                columns:[[
                    {field:'id',title:'id',width:100},
                    {field:'countryname',title:'国家名称',width:100,align:'center'},
                    {field:'countrycode',title:'国家代码',width:100,align:'center'}
                ]]
            });

        });
    </script>
</html>

最后成果如下所示~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,732评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,567评论 18 399
  • 小野茉莉 你离开了, 没有留下一丝眷恋, 一切仿佛了无痕迹, 如果不是那烟灰缸里的, 那些烟蒂,...
    小野茉莉a阅读 216评论 0 3
  • 我信與你繼續亂纏,難再有發展,但我想跟你亂纏。 from「無人之境」 昨天跑完今天腿痠,真的是荒廢太久不中。今天糊...
    阿飛阅读 222评论 0 1