[TOC]
## 步骤 1 : 准备数据
因为用户信息是前台注册的时候增加的,截至目前为止,还没有讲到前台的功能。所以需要手动在数据库中增加数据,以便于观察运行的效果
~~~
insert into t_user values(null,'a1','123456');
insert into t_user values(null,'a2','123456');
insert into t_user values(null,'a3','123456');
insert into t_user values(null,'a4','123456');
insert into t_user values(null,'a5','123456');
~~~
## 步骤 2 : 先运行,看到效果,再学习
先将完整的 tmall-ssm 项目(向老师要相关资料),配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。
## 步骤 3 : 模仿和排错
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较**正确答案** ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,**学习有效果,排错有效率**,可以较为明显地提升学习速度,跨过学习路上的各个槛。
## 步骤 4 : 页面截图
用户这部分做的比较简单,只有查询,为什么呢?
1. 用户的增加,是交由前台注册行为产生的,后台不需要自己进行增加
2. 用户信息不能删除。 用户信息是最重要的业务信息,不可以删除
3. 用户资料的修改,也应该有前台用户自己进行,而不是后台操作。比如修改密码
![](https://box.kancloud.cn/8883ecea8240134aa273ba463b427283_1814x426.png)
## 步骤 5 : User
User使用自动生成的,没变化
## 步骤 6 : UserService
新增UserService,提供CRUD一套
~~~
package com.dodoke.tmall.service;
import java.util.List;
import com.dodoke.tmall.pojo.User;
public interface UserService {
void add(User c);
void delete(int id);
void update(User c);
User get(int id);
List list();
}
~~~
## 步骤 7 : UserServiceImpl
新建类UserServiceImpl,提供CURD一套
~~~
package com.dodoke.tmall.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dodoke.tmall.mapper.UserMapper;
import com.dodoke.tmall.pojo.User;
import com.dodoke.tmall.pojo.UserExample;
import com.dodoke.tmall.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public void add(User u) {
userMapper.insert(u);
}
@Override
public void delete(int id) {
userMapper.deleteByPrimaryKey(id);
}
@Override
public void update(User u) {
userMapper.updateByPrimaryKeySelective(u);
}
@Override
public User get(int id) {
return userMapper.selectByPrimaryKey(id);
}
public List<User> list() {
UserExample example = new UserExample();
example.setOrderByClause("id desc");
return userMapper.selectByExample(example);
}
}
~~~
## 步骤 8 : UserController
新建UserController类,提供分页查询
~~~
package com.dodoke.tmall.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.dodoke.tmall.pojo.User;
import com.dodoke.tmall.service.UserService;
import com.dodoke.tmall.util.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@Controller
@RequestMapping("")
public class UserController {
@Autowired
UserService userService;
@RequestMapping("admin_user_list")
public String list(Model model, Page page) {
PageHelper.offsetPage(page.getStart(), page.getCount());
List<User> us = userService.list();
int total = (int) new PageInfo<>(us).getTotal();
page.setTotal(total);
model.addAttribute("us", us);
model.addAttribute("page", page);
return "admin/listUser";
}
}
~~~
## 步骤 9 : listUser.jsp
listUser.jsp页面
## 步骤 10 : 查询功能讲解
点击后台管理上方导航中的 用户管理,进入用户查询界面
`http://127.0.0.1:8080/tmall_ssm/admin_user_list`
UserController的list方法被调用
1. 获取分页对象
2. 设置分页信息
3. 查询用户集合
4. 通过PageInfo获取总数,并设置在page对象上
5. 把用户集合设置到model的"us"属性上
6. 把分页对象设置到model的"page"属性上
5. 服务端跳转到admin/listUser.jsp页面
6. 在listUser.jsp用c:forEach遍历"us"集合
![](https://box.kancloud.cn/0216e7817f79a61720ab1535c2a39678_438x45.png)
UserController 代码片段:
~~~
@RequestMapping("admin_user_list")
public String list(Model model, Page page) {
PageHelper.offsetPage(page.getStart(), page.getCount());
List<User> us = userService.list();
int total = (int) new PageInfo<>(us).getTotal();
page.setTotal(total);
model.addAttribute("us", us);
model.addAttribute("page", page);
return "admin/listUser";
}
~~~
listUser.jsp:
~~~
<c:forEach items="${us}" var="u">
<tr>
<td>${u.id}</td>
<td>${u.name}</td>
</tr>
</c:forEach>
~~~
## 步骤 11 : 增加,删除,修改功能
增加交由前台用户注册功能
删除不提供(用户信息是最重要的资料)
修改不提供,应该由前台用户自己完成****
- 项目简介
- 功能一览
- 前台
- 后台
- 开发流程
- 需求分析-展示
- 首页
- 产品页
- 分类页
- 搜索结果页
- 购物车查看页
- 结算页
- 确认支付页
- 支付成功页
- 我的订单页
- 确认收货页
- 确认收货成功页
- 评价页
- 需求分析-交互
- 分类页排序
- 立即购买
- 加入购物车
- 调整订单项数量
- 删除订单项
- 生成订单
- 订单页功能
- 确认付款
- 确认收货
- 提交评价信息
- 登录
- 注册
- 退出
- 搜索
- 前台需求列表
- 需求分析后台
- 分类管理
- 属性管理
- 产品管理
- 产品图片管理
- 产品属性设置
- 用户管理
- 订单管理
- 后台需求列表
- 表结构设计
- 数据建模
- 表与表之间的关系
- 后台-分类管理
- 可运行的项目
- 静态资源
- JSP包含关系
- 查询
- 分页
- 增加
- 删除
- 编辑
- 修改
- 做一遍
- 重构
- 分页方式
- 分类逆向工程
- 所有逆向工程
- 后台其他页面
- 属性管理实现
- 产品管理实现
- 产品图片管理实现
- 产品属性值设置
- 用户管理实现
- 订单管理实现
- 前端
- 前台-首页
- 可运行的项目
- 静态资源
- ForeController
- home方法
- home.jsp
- homePage.jsp
- 前台-无需登录
- 注册
- 登录
- 退出
- 产品页
- 模态登录
- 分类页
- 搜索
- 前台-需要登录
- 购物流程
- 立即购买
- 结算页面
- 加入购物车
- 查看购物车页面
- 登录状态拦截器
- 其他拦截器
- 购物车页面操作
- 订单状态图
- 生成订单
- 我的订单页
- 我的订单页操作
- 评价产品
- 总结