使用Redis存取数据+数据库存取(spring+java)

RoleMapper接口:

复制代码
package com.wbg.springRedis.dao;

import com.wbg.springRedis.entity.Role;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface RoleMapper {
    List<Role> listAll();
    int add(Role role);
}
View Code
复制代码

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.wbg.springRedis.dao.RoleMapper">
    <insert id="add" parameterType="com.wbg.springRedis.entity.Role">
        insert into role(role_name,note) values(#{roleName},#{note})
    </insert>
    <select id="listAll" resultType="com.wbg.springRedis.entity.Role">
        select * from role
    </select>
</mapper>
View Code
复制代码

Role类:

复制代码
package com.wbg.springRedis.entity;

import java.io.Serializable;

public class Role  {
    private int id;
    private String roleName;
    private String note;
    @Override
    public String toString() {
        return "Role{" +
                "id=" + id +
                ", roleName='" + roleName + '\'' +
                ", note='" + note + '\'' +
                '}';
    }

    public Role() {
    }

    public Role(String roleName, String note) {
        this.roleName = roleName;
        this.note = note;
    }

    public Role(int id, String roleName, String note) {
        this.id = id;
        this.roleName = roleName;
        this.note = note;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }
}
View Code
复制代码

 xml文件:

复制代码
复制代码
   //纯java
  @Bean
    public JedisConnectionFactory jedisConnectionFactory(){
        JedisConnectionFactory jcf = new JedisConnectionFactory();
        jcf.setHostName("localhost");
        return jcf;
    }
    @Bean
    public RedisTemplate redisTemplate(){
        RedisTemplate rt = new RedisTemplate();
        rt.setConnectionFactory(jedisConnectionFactory());
        rt.setKeySerializer(new StringRedisSerializer());
        rt.setValueSerializer(new StringRedisSerializer());
        return rt;
    }



复制代码

 

    @Autowired
    private RedisTemplate redisTemplate;
    @Autowired
    private RoleMapper roleMapper;
 public List<Role> listRole() throws IOException {
        //使用jackJson序列化
        ObjectMapper om = new ObjectMapper();
        //
        String key = "listRole";
        //原生
        //Jedis jedis = new Jedis();
       /* if (jedis.exists(key)){
            return om.readValue(jedis.get(key), new TypeReference<List<Role>>(){});
        }*/
       //如果存在 就返回
        if (redisTemplate.hasKey(key)){
            return om.readValue((String) redisTemplate.opsForValue().get(key), new TypeReference<List<Role>>() {
            });
        }
        List<Role> list = roleMapper.listAll();
        //原生设置值
        //jedis.set(key, om.writeValueAsString(list));
        //设置
        redisTemplate.opsForValue().set(key, om.writeValueAsString(list));

        return list;
    }
复制代码

 

posted @   韦邦杠  阅读(2087)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示