spring boot redis使用

**

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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值