企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[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 : 增加,删除,修改功能 增加交由前台用户注册功能 删除不提供(用户信息是最重要的资料) 修改不提供,应该由前台用户自己完成****