ssm商城教学13.分页

目前的分页方式

目前的分页方式是自己写分页对应的limit SQL语句,并且提供一个获取总数的count(*) SQL。 不仅如此, mapper, service, service.impl 里都要提供两个方法:
list(Page page), count()

分类是这么做的,后续其他所有的实体类要做分页管理的时候都要这么做,所以为了提高开发效率,把目前的分页方式改为使用 pageHelper分页插件来实现。

CategoryMapper.xml

1. 去掉total SQL语句
2. 修改list SQL语句,去掉其中的limit

<?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.how2java.tmall.mapper.CategoryMapper">

    <select id="list" resultType="Category">

        select * from   category         order by id desc

    </select>

 

    <insert id="add"  keyProperty="id"  useGeneratedKeys="true" parameterType="Category" >

        insert into category ( name ) values (#{name})

    </insert>

    <delete id="delete">

        delete from category where id= #{id}

    </delete>

 

    <select id="get" resultType="Category">

        select * from category  where id= #{id}

    </select>

 

    <update id="update" parameterType="Category" >

        update category set name=#{name} where id=#{id}

    </update>

</mapper>

CategoryMapper

1. 去掉total()方法
2. 去掉list(Page page)方法
3. 新增list() 方法

package com.how2java.tmall.mapper;

 

import com.how2java.tmall.pojo.Category;

 

import java.util.List;

 

public interface CategoryMapper {

     List<Category> list();

 

     void add(Category category);

 

     void delete(int id);

 

     Category get(int id);

 

     void update(Category category);

}

CategoryService

1. 去掉total()方法
2. 去掉list(Page page)方法
3. 新增list() 方法

package com.how2java.tmall.service;

 

import com.how2java.tmall.pojo.Category;

import java.util.List;

 

public interface CategoryService{

    List<Category> list();

 

    void add(Category category);

 

    void delete(int id);

 

    Category get(int id);

 

    void update(Category category);

}

CategoryServiceImpl

1. 去掉total()方法
2. 去掉list(Page page)方法
3. 新增list() 方法

package com.how2java.tmall.service.impl;

 

import com.how2java.tmall.mapper.CategoryMapper;

import com.how2java.tmall.pojo.Category;

import com.how2java.tmall.service.CategoryService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

 

import java.util.List;

 

@Service

public class CategoryServiceImpl implements CategoryService {

    @Autowired

    CategoryMapper categoryMapper;

 

    @Override

    public List<Category> list() {

        return categoryMapper.list();

    }

 

    @Override

    public void add(Category category) {

        categoryMapper.add(category);

    }

 

    @Override

    public void delete(int id) {

        categoryMapper.delete(id);

    }

 

    @Override

    public Category get(int id) {

        return categoryMapper.get(id);

    }

 

    @Override

    public void update(Category category) {

        categoryMapper.update(category);

    }

}

CategoryController

修改list方法
1. 通过分页插件指定分页参数

PageHelper.offsetPage(page.getStart(),page.getCount());


2. 调用list() 获取对应分页的数据

categoryService.list();


3. 通过PageInfo获取总数

int total = (int) new PageInfo<>(cs).getTotal();


其余部分没有变化

@RequestMapping("admin_category_list")

public String list(Model model,Page page){

    PageHelper.offsetPage(page.getStart(),page.getCount());

    List<Category> cs= categoryService.list();

    int total = (intnew PageInfo<>(cs).getTotal();

    page.setTotal(total);

    model.addAttribute("cs", cs);

    model.addAttribute("page", page);

    return "admin/listCategory";

}

修改applicationContext.xml

applicationContext.xml中关于插件部分本来是被注释掉的,现在释放出来(51到60行)

ssm商城教学13.分页