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 = (
int
)
new
PageInfo<>(cs).getTotal();
page.setTotal(total);
model.addAttribute(
"cs"
, cs);
model.addAttribute(
"page"
, page);
return
"admin/listCategory"
;
}
修改applicationContext.xml
applicationContext.xml中關於外掛部分本來是被註釋掉的,現在釋放出來(51到60行)