List findAllUser();
List findAllUser();
@Override
public List findAllUser() {
return userDao.findAllUser();
}
自动注入对象
@Autowire
,这样就可以不需要每次都要new
一个新的对象。
// 自动注入,就不需要new一个UserDao对象
@Autowired
private UserDao userDao;
UserMapper.xml
配置文件中,添加查询所有用户的SQL语句
//自动注入
@Autowired
private UserService userService;
// 查询所有方法
@RequestMapping("findAllUser.do")
public ModelAndView findAllUser(){
// 1. 调用Service 去查询得到数据
List userList = userService.findAllUser();
// 2. 实例化ModeAndView对象,将得到的数据添加到里面
ModelAndView mv = new ModelAndView();
mv.addObject("user", userList);
// user-list.jsp
mv.setViewName("user-list");
return mv;
}
index.jsp
中实现查询所有用户<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- --%>
查询所有
添加用户的过程与查询类似
// 新增用户
void addUser(User user);
// 增加
void addUser(User user);
@Override
public void addUser(User user) {
userDao.addUser(user);
}
UserMapper.xml
编写插入用户的SQL语句
insert into tb_user(id, username, password) values(#{id}, #{username}, #{password})
// 增加
@RequestMapping("/addUser")
public String addUser(User user){
// 1. 调用Service方法,得到结果
userService.addUser(user);
// 2. 重定向到findAllUser
return "redirect:findAllUser.do";
}
User-add.jsp
中实现页面跳转
Dao
添加接口方法 // 删除
void DeleteUserById(int id);
Service
层编写接口方法 // 删除
void DeleteUserById(int id);
@Override
public void DeleteUserById(int id) {
userDao.DeleteUserById(id);
}
UserMapper
中编写SQL语句
delete from tb_user where id = #{id}
UserController
中实现地址映射,并跳转到查询所有
页面 // 删除
@RequestMapping("/DeleteUserById")
public String DeleteUserById(int id){
userService.DeleteUserById(id);
return "redirect:findAllUser.do";
}
修改用户信息要分成两步操作:查询所要修改的用户;修改用户信息
Dao
层添加两个接口方法 // 修改前的查询
User findUpdUserById(int id);
// 修改
void updUserById(User user);
Service
层中也添加这个两个接口方法 // 修改前的查询
User findUpdUserById(int id);
// 修改
void updUserById(User user);
Serviceimpl
中实现这两个接口 @Override
public User findUpdUserById(int id) {
return userDao.findUpdUserById(id);
}
@Override
public void updUserById(User user) {
userDao.updUserById(user);
}
UserMapper.xml
编写SQL语句
update tb_user set username = #{username}, password = #{password} where id = #{id}
UserController
中实现地址映射 // 修改前的查询操作
@RequestMapping("/findUpdUserById")
public ModelAndView findUpdUserById(int id){
// 1. 调用service方法,得到结果
User user = userService.findUpdUserById(id);
// System.out.println(user);
// 2. 实例化一个ModelAndView
ModelAndView mv = new ModelAndView();
mv.addObject("user", user);
mv.setViewName("user-update");
return mv;
}
// 修改
@RequestMapping("/updUserById")
public String updUserById(User user){
userService.updUserById(user);
return "redirect:findAllUser.do";
}
User-list.jsp
中,实现更新
按钮地址跳转
${user.id}
${user.username}
${user.password}
更新
删除
添加角色
同时也要修改user-update,jsp文件中的action,将user.id传到userController层中
UserDao
中添加接口方法,注意模糊查询方法的返回值是一个用户List类型 // 模糊查询
List FuzzyQueryUser(String username);
Uservice
中添加接口方法 // 模糊查询
List FuzzyQueryUser(String username);
UserServiceImpl
实现UserService
中的接口这里有个小技巧就是,将光标放在红色提示波浪线区域内,按快捷键
Alt+Enter
,就会弹出一个提示框,点击Implement Method
就可以实现方法的重写。
@Override
public List FuzzyQueryUser(String username) {
return userDao.FuzzyQueryUser(username);
}
获取用户输入的用户名,并将username传给UserController层
UserController
层实现地址映射 @RequestMapping("/FuzzyQueryUser")
public ModelAndView FuzzyQueryUser(String username){
List userList_FuzzyQueryUser = userService.FuzzyQueryUser(username);
ModelAndView mv = new ModelAndView();
mv.addObject("user", userList_FuzzyQueryUser);
mv.setViewName("user-list");
return mv;
}