package com.ssm.controller;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.ssm.pojo.User;
import com.ssm.service.IUserService;
/**
* user控制器
*
* @author YaoQi
*/
@Controller
@RequestMapping("/UserCRUD")
public class UserController {
@Resource
private IUserService userService;
/**
* 查询所有User
*
* @param request
* @param model
* @return
*/
@RequestMapping(value = "/showUser", method = RequestMethod.GET)
public String showUsers(Model model) {
System.out.println("**********showUsers********");
List<User> userList = new ArrayList<User>();
userList = userService.getAllUser();
model.addAttribute("userList", userList); // 填充数据到model
return "showUser";
}
/**
* 增加一个用户
*
* @param userName
* @param sex
* @param age
* @return
*/
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
@ResponseBody
public ModelMap addUser(String userName, String sex, int age) {
System.out.println("******addUser********");
System.out.println(userName + sex + age);
User user = new User();
user.setsex(sex);
user.setUserName(userName);
user.setAge(age);
userService.insertUser(user);
ModelMap model = new ModelMap();
model.addAttribute("result", "添加成功");
return model;
}
/**
* 通过userID删除用户
*
* @param userID
*/
@RequestMapping(value = "/delUser/{userID}", method = RequestMethod.GET)
public ModelAndView delUser(@PathVariable int userID) {
System.out.println(userID);
userService.deleteUser(userID);
ModelAndView mv = new ModelAndView();
List<User> userList = new ArrayList<User>();
userList = userService.getAllUser();
mv.addObject("userList", userList); // 填充数据到model
mv.setViewName("showUser");
return mv;
}
/**
* 查询用户
*
* @param model
* @param keyWords
* @return
*/
@RequestMapping(value = "/search", method = RequestMethod.POST)
public String findUsers(Model model, String keyWords) {
System.out.println(keyWords);
List<User> userList = new ArrayList<User>();
userList = userService.findUsers(keyWords);
model.addAttribute("userList", userList); // 填充数据到model
return "showUser";
}
/**
* 更新用户信息
* @param userName
* @param sex
* @param age
* @param id
* @return
*/
@RequestMapping(value="/editUser",method=RequestMethod.POST)
public ModelAndView editUser(String userName, String sex, int age, int id) {
System.out.println(userName + sex + age);
User user = new User();
user.setsex(sex);
user.setUserName(userName);
user.setAge(age);
user.setId(id);
userService.editUser(user);
ModelAndView mv = new ModelAndView();
List<User> userList = new ArrayList<User>();
userList = userService.getAllUser();
mv.addObject("userList", userList); // 填充数据到model
mv.setViewName("redirect:/UserCRUD/showUser");
return mv;
}
}
User:
package com.ssm.pojo;
import java.io.Serializable;
/**
* User实体类对应数据库中的tb_user表
*
* @author YaoQi
* 要想使用redis存对象,一定要让实体类实现Serializable接口,否则会报错。
*/
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5244288298702801619L;
private int id;
private String userName;
private String sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getsex() {
return sex;
}
public void setsex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", sex=" + sex + ", age=" + age + "]";
}
}
UserMapper:
package com.ssm.dao;
import java.util.List;
import com.ssm.pojo.User;
public interface UserMapper {
public User selectByPrimaryKey(int userId);
public List<User> selectAllUser();
public void insertUser(User user);
public void deleteUser(int id);
public List<User> findUsers(String keyWords);
public void editUser(User user);
}
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.ssm.dao.UserMapper">
<resultMap id="BaseResultMap" type="com.ssm.pojo.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="userName" property="userName" jdbcType="VARCHAR" />
<result column="sex" property="sex" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List">
id,userName,sex,age
</sql>
<select id="findUsers" resultMap="BaseResultMap" parameterType="String">
select
<include refid="Base_Column_List" />
from tb_user
where id like #{keyWords}
or userName like #{keyWords}
or sex like #{keyWords}
or age like #{keyWords}
</select>
<!-- 查询所有的user -->
<select id="selectAllUser" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tb_user
</select>
<!-- 添加一个用户 -->
<insert id="insertUser" parameterType="com.ssm.pojo.User">
INSERT INTO
tb_user(userName,sex,age) VALUES
(#{userName},#{sex},#{age})
</insert>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM tb_user WHERE
id=#{id}
</delete>
<!-- 更新user信息 -->
<update id="editUser" parameterType="com.ssm.pojo.User">
UPDATE tb_user SET
userName=#{userName}, sex=#{sex},age=#{age} WHERE id=#{id}
</update>
</mapper>
IUserService:
package com.ssm.service;
import java.util.List;
import com.ssm.pojo.User;
/**
* user表的操作接口
* @author YaoQi
*/
public interface IUserService {
/**
* 通过id查询user接口方法
* @param userId
* @return
*/
public User getUserById(int userId);
/**
* 查询所有的user
* @return 返回userList
*/
public List<User> getAllUser();
/**
* 添加一个user
* @param user
*/
public void insertUser(User user);
/**
* 通过ID删除用户
* @param id
*/
public void deleteUser(int id);
/**
* 通过关键字查询用户
* @param keyWords
* @return
*/
public List<User> findUsers(String keyWords);
/**
* 更新用户
* @param user
*/
public void editUser(User user);
}