使用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);
}
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)的更多相关文章
- XML Schema格式的"日期型数据”数据库存取
对于XML Schema格式的"日期型数据"在数据库中存于datetime字段的时候,出现错误 mysql> select @@sql_mode; +------------ ...
- Python写的链接数据库存取数据
Python写的链接数据库存取数据 #!/usr/bin/python # -*- coding: UTF-8 -*- from __future__ import print_function im ...
- redis存取数据list
登录redis客户端 一.存取数据 1.左右添加数据 2.读取数据lrange 3.左右固定弹出一个元素 4.列表中个数 5.删除元素值为value的元素 count 值要自己给定: 6.获取和设置指 ...
- redis存取数据Set
一.set集合无序不重复 二.存取数据 1. 2. 3. 4.set集合差集运算 找出并返回前面集合有后面没有的元素: 5.set集合交际运算 6.并集运算 sunion 7.随机弹出一个元素,因为s ...
- spring + redis 实现数据的缓存
1.实现目标 通过redis缓存数据.(目的不是加快查询的速度,而是减少数据库的负担) 2.所需jar包 注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要 ...
- Spring Boot使用redis做数据缓存
1 添加redis支持 在pom.xml中添加 <dependency> <groupId>org.springframework.boot</groupId> & ...
- Spring+Redis集成+关系型数据库持久化
本篇文章主要介绍了"Spring+Redis集成+关系型数据库持久化",主要涉及到Spring+Redis集成+关系型数据库持久化方面的内容,对于Spring+Redis集成+关系 ...
- SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存
系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地址: Redus 官方网址:https://redis.io/ 博文示例项目 Github 地址 ...
- sqlite3的图片的(二进制数据)存取操作
sqlite3的图片的(二进制数据)存取操作 前言 上篇介绍了sqlite3的一些常用插入操作方法和注意事项,在实际项目中遇到了图片缓存的问题,由于服务器不是很稳定,且受到外界环境的干扰(例如断电 ...
随机推荐
- 关于eclipse的编码注释等Code Template设置
啥也不说直接放东西: 首先进入eclipse的preferences里的java 点击Insert variable可以自己设置需要的 1. 设置Files:点击edit, /** * <p&g ...
- Filter---javaweb的过滤器
1.Filter是什么? Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能. 在Servlet API中定义了三个 ...
- 读EntityFramework.DynamicFilters源码_心得_单元测试03
上个星期我们只是显示了一个示例,怎么在EF的框架内,注入我们拓展的动态过滤器 第一步:安装EntityFramework.DynamicFilters 第二步:重写OnModelCreating方法 ...
- hdu 4055 Number String(递推DP)
给一个只含‘I','D','?'三种字符的字符串,I表示当前数字大于前面的数字,D表示当前的数字小于前面一位的数字,?表示当前位既可以小于又可以大于. 问1~n的排列中有多少个满足该字符串. http ...
- js-JavaScript的简介
JavaScript的简介 * 是基于对象和事件驱动的语言,应用于客户端 - 基于对象: ** 提供好了很多对象,可以直接拿过来使用 - 事件驱动: ** HTML做网站静态效果,JavaScript ...
- 利用setTimeoutc处理javascript ajax请求超时
用过jquery的人都知道里面的$.ajax能设置超时处理及各种错误的抛出,确实好用.原生的js没有对应的方法,还得写各种兼容.在实际运用中,不管请求是否成功都应该做容错处理, 不然用户不知道到底发生 ...
- 记录开发Nodejs c++ addon的一些经验(二、数据类型的转换(尤其是Buffer))
常见的数据类型的转换基本比较容易,结合nan应该不是一件难事 参考链接: http://blog.jobbole.com/109598/ http://deadhorse.me/nodejs/2012 ...
- JavaScript 数组对象常用属性
concat() 用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. var a = ["aa","ccc"]; var b ...
- type="button"和type="submit"的区别
type="button" ,"submit" 的区别(转) Submit是专门用于提交表单的Button,与Button的区别主要有两点: type=button 就单纯是按钮功能 type=s ...
- 001Java锁之synchronized
01.synchronized & Lock synchronized锁同步 软件层面依赖JVM Lock锁同步 硬件层面依赖cpu指令 02.synchronized作用域 方法:锁住对象实 ...