项目使用的是SSM框架,项目的功能是基于上一篇博客进行拓展的。项目中导入了一些前端页面文件,我将项目代码上传到了github
主要是在控制层,数据访问层和业务层添加一些功能,还有修改mapper文件下面的映射文件UserMapper.xml。
controller UserController
package com.zr.controller;
import com.zr.bean.User;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
// 处理user路径下的请求
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
// 处理登录请求
@RequestMapping("login.do")
public ModelAndView login(User user){
String username = user.getUsername();
String password = user.getPassword();
boolean flag = userService.login(username, password);
ModelAndView modelAndView = new ModelAndView();
if(flag==true){
modelAndView.setViewName("main");
}else {
modelAndView.setViewName("../failer");
}
return modelAndView;
}
// 查找所有用户请求
@RequestMapping("findAll.do")
public ModelAndView findAll(){
List<User> users = userService.findAll();
ModelAndView mv = new ModelAndView();
mv.setViewName("user-list");
mv.addObject("users",users);
return mv;
}
// 删除用户请求
@RequestMapping("deleteByID.do")
public String delete(int id){
userService.deleteByID(id);
return "redirect:findAll.do";
}
// 添加用户请求
@RequestMapping("add.do")
public String add(User user){
userService.add(user);
return "redirect:findAll.do";
}
// 确定更新用户对象
@RequestMapping("toUpdate.do")
public ModelAndView toUpdate(int id){
User user = userService.selectUserByID(id);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("user-update");
return modelAndView;
}
// 进行更新请求
@RequestMapping("update.do")
public String update(User user){
userService.update(user);
return "redirect:findAll.do";
}
}
到业务接口 IUserService,添加对应的方法
package com.zr.service;
import com.zr.bean.User;
import java.util.List;
public interface IUserService {
boolean login(String username, String password);
List<User> findAll();
void deleteByID(int id);
void add(User user);
User selectUserByID(int id);
void update(User user);
}
接口类UserServiceImpl具体实现,将要实现的功能交给dao层(数据访问层)处理。
package com.zr.service.impl;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findUserByUserName(username);
if(user!=null&&user.getPassword().equals(password)){
return true;
}
return false;
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public void deleteByID(int id) {
userDao.deleteByID(id);
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public User selectUserByID(int id) {
return userDao.selectUserByID(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
}
dao层接口IUserDao
package com.zr.dao;
import com.zr.bean.User;
import java.util.List;
public interface IUserDao {
User findUserByUserName(String username);
List<User> findAll();
void deleteByID(int id);
void add(User user);
User selectUserByID(int id);
void update(User user);
}
利用Mybatis框架,根据接口定义创建接口的动态代理对象的原理。所以还需要修改UserMapper.xml
<?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.zr.dao.IUserDao">
<select id="findUserByUserName" parameterType="String" resultType="com.zr.bean.User">
select * from tb_user where username=#{username}
</select>
<select id="findAll" resultType="user">
select * from tb_user
</select>
<delete id="deleteByID" parameterType="int">
delete from tb_user where id = #{id}
</delete>
<insert id="add" parameterType="user">
insert into tb_user(username,password) value (#{username},#{password})
</insert>
<select id="selectUserByID" parameterType="int" resultType="user">
select * from tb_user where id = #{id}
</select>
<update id="update" parameterType="user">
update tb_user set username = #{username},password=#{password} where id = #{id}
</update>
</mapper>