**
controller层
**
package com.example.nuo.Controller;
import com.example.nuo.Service.UserService;
import com.example.nuo.bean.User;
import org.springframework.boot.web.servlet.server.Session;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@Controller
public class UserController {
@Resource
private UserService userService;
@RequestMapping("login")
public String tologin(HttpServletRequest request){
Cookie[] cookies = request.getCookies();
String ck=null;
for (Cookie x:cookies){
if ("JSESSIONID".equals(x.getName())){
ck=x.getValue();
}
}
return "login";
}
@RequestMapping("/updateuser.do")
public String updateUser(User user,Model model){
System.out.println(user);
userService.updateUser(user);
model.addAttribute("users",userService.selectUser());
return "list";
}
@RequestMapping("/selectuser.do")
public String selectUser(Model model){
model.addAttribute("users",userService.selectUser());
return "list";
}
@ResponseBody
@RequestMapping("/deleteuser.do")
public String deleteuser(int id){
userService.deleteUserByid(id);
return "删除成功";
}
@RequestMapping("/insertuser.do")
@ResponseBody
public String insertUser(User user){
userService.insertUser(user);
return "添加成功";
}
@RequestMapping("/login.do")
public String loginUser(User user, HttpServletRequest request, HttpServletResponse response){
System.out.println(user);
User user1 = userService.loginUser(user);
userService.selectUserByid(user1.getId());
request.setAttribute("user1",user1);
System.out.println(user1);
if(user1!=null){
HttpSession session = request.getSession();
String sessionId = session.getId();
//将session的Id存储到名字为JSESSIONID的cookie中
System.out.println("ckid:"+sessionId);
Cookie cookie = new Cookie("JSESSIONID", sessionId);
//设置cookie的有效路径
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
System.out.println("login-----");
return "main";
}
System.out.println("shibia");
return "login";
}
}
service层
package com.example.nuo.Service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.nuo.Mapper.UserMapper;
import com.example.nuo.Service.UserService;
import com.example.nuo.bean.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Cacheable(cacheNames = "user",key = "#id")
@Override
public User selectUserByid(int id) {
System.out.println("通过id查询------数据库----添加到缓存");
return userMapper.selectById(id);
}
@CachePut(cacheNames = "user",key = "#user.id")
@Override
public User updateUser(User user) {
System.out.println("修改------数据库----更新缓存");
int u = userMapper.updateById(user);
return user;
}
@Override
public List<User> selectUser() {
System.out.println("全部查询 走数据库 不走缓存");
return userMapper.selectList(null);
}
@CachePut(cacheNames = "user",key = "#user.id")
@Override
public User insertUser(User user) {
System.out.println("添加------数据库-----更新缓存");
userMapper.insert(user);
return user;
}
@CacheEvict(cacheNames = "user",key ="#id")
@Override
public int deleteUserByid(int id) {
System.out.println("根据id删除信息 缓存 和 数据库 ");
return userMapper.deleteById(id);
}
//登录不可以通过id加入redis中 id 都为空
@Override
public User loginUser(User user) {
QueryWrapper queryWrapper = new QueryWrapper();
Map <String,Object> hashMap = new HashMap();
hashMap.put("username",user.getUsername());
hashMap.put("pwd",user.getPwd());
queryWrapper.allEq(hashMap);
return userMapper.selectOne(queryWrapper);
}
}