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

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>

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

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

使用Redis存取数据+数据库存取(spring+java)的更多相关文章

  1. XML Schema格式的"日期型数据”数据库存取

    对于XML Schema格式的"日期型数据"在数据库中存于datetime字段的时候,出现错误 mysql> select @@sql_mode; +------------ ...

  2. Python写的链接数据库存取数据

    Python写的链接数据库存取数据 #!/usr/bin/python # -*- coding: UTF-8 -*- from __future__ import print_function im ...

  3. redis存取数据list

    登录redis客户端 一.存取数据 1.左右添加数据 2.读取数据lrange 3.左右固定弹出一个元素 4.列表中个数 5.删除元素值为value的元素 count 值要自己给定: 6.获取和设置指 ...

  4. redis存取数据Set

    一.set集合无序不重复 二.存取数据 1. 2. 3. 4.set集合差集运算 找出并返回前面集合有后面没有的元素: 5.set集合交际运算 6.并集运算 sunion 7.随机弹出一个元素,因为s ...

  5. spring + redis 实现数据的缓存

    1.实现目标 通过redis缓存数据.(目的不是加快查询的速度,而是减少数据库的负担) 2.所需jar包 注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要 ...

  6. Spring Boot使用redis做数据缓存

    1 添加redis支持 在pom.xml中添加 <dependency> <groupId>org.springframework.boot</groupId> & ...

  7. Spring+Redis集成+关系型数据库持久化

    本篇文章主要介绍了"Spring+Redis集成+关系型数据库持久化",主要涉及到Spring+Redis集成+关系型数据库持久化方面的内容,对于Spring+Redis集成+关系 ...

  8. SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存

    系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地址: Redus 官方网址:https://redis.io/ 博文示例项目 Github 地址 ...

  9. sqlite3的图片的(二进制数据)存取操作

    sqlite3的图片的(二进制数据)存取操作   前言 上篇介绍了sqlite3的一些常用插入操作方法和注意事项,在实际项目中遇到了图片缓存的问题,由于服务器不是很稳定,且受到外界环境的干扰(例如断电 ...

随机推荐

  1. LDAP概念了解

    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.LDAP支持TCP/IP,这对访问Internet是必须的. L ...

  2. python 之 os._exit() sys.exit() 、exit()

    sys.exit 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 退出程序引发SystemExit异常,(这是唯一一个不会被认为是 ...

  3. nodejs的socket.io学习笔记

    socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...

  4. VC++ IPv6的支持

    最近根据项目需要,要在产品中添加对IpV6的支持,因此研究了一下IPV6的相关内容,Ipv6 与原来最直观的改变就是地址结构的改变,IP地址由原来的32位扩展为128,这样原来的地址结构肯定就不够用了 ...

  5. HTML5 : 文件上传下载

    网站建设中,文件上传与下载在所难免,HTML5中提供的API在前端有着丰富的应用,完美的解决了各个浏览器的兼容性问题,所以赶紧get吧! FileList 对象和 file 对象 HTML 中的 in ...

  6. Java 使用Log4J进行日志操作

    使用Log4J进行日志操作   Log4J简介   Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT ...

  7. Java jsp 自定义标签

    1 自定义标签 1.1 引入 需求: 向浏览器输出当前客户的IP地址 (只能使用jsp标签) 1.2 第一个自定义标签开发步骤 1)编写一个普通的java类,继承SimpleTagSupport类,叫 ...

  8. Python基础-模块与包

    一.如何使用模块 上篇文章已经简单介绍了模块及模块的优点,这里着重整理一下模块的使用细节. 1. import 示例文件:spam.py,文件名spam.py,模块名spam #spam.py pri ...

  9. (C/C++) 用函数返回一个结构体

    方法一: 参数里含有指向指针的指针. 注意:如果函数参数里只有一个指向结构体的指针,是无法正确地返回结构体的值的.原因在于在编译的时候,会对入参p产生一个备份_p. 参考此文:http://www.c ...

  10. 替换NSString类中的stringWithFormat:方法

    替换NSString类中的stringWithFormat:方法 先给出源码: YXUseful.h // // YXUseful.h // NSString // // Copyright (c) ...