关于mapper层使用@Param注解(@Param的使用)

bert下albert_chinese_small实现文本分类

  返回  

RedisTemplate取值类型转换问题

2021/8/20 17:04:40 浏览:
 当用到redis缓存数据库数据时,存的时候,可以是String,可以是处理过的对象,还可以是List集合...,但是在取数据时,作为操作者的你需要对接收到的数据类型做转换,否则类型不一致,影响返回和接收。

类型转换方式一:封装方法
封装关于redis的get方法,通过泛型对值类型进行转换。

//存储时,value为一个对象,返回时,value默认为 object类型,需要进行类型转换
@SuppressWarnings("unchecked")
public static <T> List<T> getList(String key, Class<T> clazz) {
        Object value = redisTemplate.opsForValue().get(key);
        if (value != null) {
            return (List<T>) value;
        }
        return null;
    }

//存储时,value为一个List集合对象,返回时,需要进行类型转换
@SuppressWarnings("unchecked")
public static <T> List<T> get(String key, Class<T> clazz) {
    Object value = redisTemplate.opsForValue().get(key, hashKey);
    if (value != null) {
        return (T) value;
    }
    return null;
}


//调用示例:
//存对象					查询到的一条Person对象数据
redisTemplate.opsForValue().set("zhangsan", Person);

//取 需要接受Person对象类型    	调用自定义的get方法
Person p1 = get("zhangsan", Person.class);

//存List集合对象					查询到的多条条Person对象数据
redisTemplate.opsForValue().set("persons", List<Person>);

//取 需要接收List<Person>类型
List<Person> list = getList("zhangsan", Person.class);
Person p1 = get("zhangsan", Person.class);
可能会有类型转换异常,此时可使用方式二

类型转换方式二:使用JSON

//JsonUtils.toJsonStr(person)作用:将person对象数据转换为json字符转【方法可以网上自行百度(很简单)】
//注意:是转换为JSON字符串,不是通过Person实体类的toString()将其转换为String。此时存进去的value是JSON字符串类型
redisTemplate.opsForValue().set("zhangsan", JSON.toJSONString(person));

//取数据:将JSON字符串转换为指定的java对象接收
String value = redisTemplate.opsForValue().get("zhangsan");
	if(value != null) {
        Person p2= JSONObject.parseObject(value, Person.class); 
        return p2;
两种方法主要提供思路供人参考.......................................

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号