一、包结构
二、各层代码
(1)数据User
public class User {
private Integer id;
private String userName;
private String note;
public User() {
super();
}
public User(Integer i, String userName, String note) {
super();
this.id = i;
this.userName = userName;
this.note = note;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
(2)dao层
IUserDao接口
public interface IUserDao {
public User getUser(Integer id);
public Boolean insertUser(User user);
public List findAllUser();
Boolean deleteUser(Integer id);
Boolean modifyUserName(Integer id, String newUserName);
}
实现类:
@Repository
public class UserDaoImpl implements IUserDao {
private List users = new ArrayList();
public UserDaoImpl() {
super();
users.add(new User(1, "user_name_1", "note_1"));
users.add(new User(2, "user_name_2", "note_2"));
users.add(new User(3, "user_name_3", "note_3"));
}
@Override
/* 根据id来返回对象*/
public User getUser(Integer id) {
// TODO Auto-generated method stub
for (User user : users) {
if (user.getId().equals(id)) {
return user;
}
}
return null;
}
@Override
public Boolean insertUser(User user) {
// TODO Auto-generated method stub
Boolean flag=false;
System.out.println(user.getUserName()+">>"+user.getNote());
users.add(user); //User为上上面申明的集合 add方法为List集合的方法
flag=true;
return flag;
}
@Override public List findAllUser() { return users; }
}
(3)service层:
IUserService接口:
public interface IUserService {
public User getUser(Integer id);
public List findAllUser();
public Boolean insertUser(User user);
public List queryUser(String userName,String note);
Boolean deleteUser(Integer id);
Boolean modifyUserName(Integer id, String newUserName);
}
实现类:
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
/* 省去了申明传值的步骤*/
@Override
/*根据User来获取对象*/
public User getUser(Integer id) {
// TODO Auto-generated method stub
return userDao.getUser(id);
}
@Override
public Boolean insertUser(User user) {
// TODO Auto-generated method stub
Boolean flag=false;
System.out.println(user.getUserName()+">>"+user.getNote());
flag=userDao.insertUser(user);
return flag;
}
@Override
public List findAllUser() {
List users = userDao.findAllUser();
if (users.size() > 1) {
for (int i = 1; i < users.size(); i++) {
User currentUser = users.get(i);
User previousUser = users.get(i-1);
if (currentUser.getId() == null) {
currentUser.setId(previousUser.getId()+1);
}
}
}
return users;
}
@Override
public List queryUser(String userName1, String note1) {
List users = userDao.findAllUser();
List result = new ArrayList<>();
for (User user : users) {
if (user.getUserName().equals(userName1) && user.getNote().equals(note1)) {
result.add(user);
}
}
return result;
}
public Boolean deleteUser(Integer id) {
return userDao.deleteUser(id);
}
@Override
public Boolean modifyUserName(Integer id, String newUserName) {
return userDao.modifyUserName(id, newUserName);
}
}
(4)controller层
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService=null;
@GetMapping("/add")
public String add() {
return "add";
}
/*
* 新增用户
*@param user 通过@RequestBody注解得到JSON参数
*return 返回用户信息
*/
@PostMapping("/insert")
@ResponseBody
public User insert(@RequestBody User user) {
userService.insertUser(user);
return user;
}
//显示数据 http://localhost:8080/user/list
@RequestMapping("/list")
@ResponseBody
public List list(){
//访问模型层得到数据
List users=userService.findAllUser();
return users;
}
//显示数据 http://localhost:8080/user/table
@RequestMapping("/table")
public ModelAndView table0() {
//访问模型层得到数据
List users=userService.findAllUser();
System.out.println("111");
//模型和视图
ModelAndView mv=new ModelAndView();
//定义模型视图 1
mv.setViewName("table");
//加入数据模型
mv.addObject("users",users);
//返回模型和视图
return mv;
}
@RequestMapping(value = "/query1")
@ResponseBody
public ModelAndView query1(@RequestParam(value = "userName") String userName,@RequestParam("note") String note){
List users=userService.queryUser(userName,note);
ModelAndView mv=new ModelAndView();
mv.setViewName("table");
mv.addObject("users",users);
return mv;
}
@RequestMapping("/delete/{id}")
public String deleteUser(@PathVariable Integer id, Model model) {
boolean success = userService.deleteUser(id);
model.addAttribute("success", success);
model.addAttribute("deletedUserId", id);
return "delete";
}
@GetMapping("/modify")
public String showModifyPage() {
return "modify";
}
@PostMapping("/modify")
@ResponseBody
public ResponseEntity