博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis实现存取数据+数据存取
阅读量:3935 次
发布时间:2019-05-23

本文共 3778 字,大约阅读时间需要 12 分钟。

 

添加依赖:

 

com.fasterxml.jackson.core
jackson-databind
2.9.7
org.springframework.data
spring-data-redis
2.1.3.RELEASE

 

 

Mapper接口:

package com.nf147.sim.mapper;import com.nf147.sim.entity.News;import java.util.List;public interface NewsMapper {    List
query(); void add(News news);}

 

 

映射文件:

insert into news (title,body) values (#{title},#{body})

 

服务接口:

package com.nf147.sim.service;import com.nf147.sim.entity.News;import redis.clients.jedis.Jedis;import java.io.IOException;import java.util.List;public interface NewsService {    List
selectAll() throws IOException;void add (News news);}

 

实现:

package com.nf147.sim.service.impl;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;import com.nf147.sim.entity.News;import com.nf147.sim.mapper.NewsMapper;import com.nf147.sim.service.NewsService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import redis.clients.jedis.Jedis;import java.io.IOException;import java.util.List;@Servicepublic class NewsServiceImpl implements NewsService {    @Autowired    private NewsMapper mapper;    @Override        public List
selectAll() throws IOException { Jedis jedis =new Jedis(); String key = "listNews"; ObjectMapper on = new ObjectMapper(); //josn if (jedis.exists(key)){             //判断缓存有没有存在key System.out.println("从缓存中取出数据..."); return on.readValue(jedis.get(key),new TypeReference
>(){}); //如果有就从缓存里面取数据 }     //没有则从数据库去取 List
news = mapper.query(); jedis.set(key,on.writeValueAsString(news)); //然后设置键和数据 return news; //返回 } @Override public void add(News news) { //每次添加时判短键是否存在,如果存在首先删除 Jedis jedis = new Jedis(); String key="listNews"; if(jedis.exists(key)) jedis.del(key); mapper.add(news); }}

 

测试:

package com.nf147.sim.service.impl;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.nf147.sim.configuration.RootConfig;import com.nf147.sim.entity.News;import com.nf147.sim.mapper.NewsMapper;import com.nf147.sim.service.NewsService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringRunner;import redis.clients.jedis.Jedis;import java.io.*;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.Arrays;import java.util.List;@RunWith(SpringRunner.class)@ContextConfiguration(classes = RootConfig.class)public class NewsServiceImplTest {    @Autowired    private NewsServiceImpl NewsServiceImpl;    @Test    public void selectAll() throws IOException {        List
news = NewsServiceImpl.selectAll(); System.out.println(news); } }}

 

结果:1470521-20181228110114036-1476235473.gifuploading.4e448015.gif转存失败

 

 
 
 
 
 
 
 
posted @ 2018-12-27 23:16 阅读(...) 评论(...)

转载地址:http://dthgn.baihongyu.com/

你可能感兴趣的文章
@Cacheable在同一个类中方法调用不起作用
查看>>
Vysor:在电脑里控制你的安卓手机
查看>>
带时区的时间MySQL以及java中的处理
查看>>
boot中jar包部署的方式读取classes下的文件
查看>>
微服务架构的基础框架选择:Spring Cloud还是Dubbo?
查看>>
mapdb实现分析
查看>>
Spring Cloud Netflix Eureka源码导读与原理分析
查看>>
gemfire的简单了解
查看>>
pom配置之:<distributionManagement>snapshot快照库和release发布库
查看>>
Hystrix仪表盘--Unable to connect to Command Metric Stream
查看>>
文本入库特殊字符处理, 防止SQL注入
查看>>
微信公众号开发的几点总结
查看>>
spring-restdocs利用测试用例生成API文档,AsciidocFX工具整合
查看>>
秒杀抢购开发总结
查看>>
config-client读取不到application中配置的config-server地址
查看>>
抓包工具Fiddler对iPhone进行抓包
查看>>
服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
查看>>
【Fiddler】改写返回数据功能(断点,autoReponse)
查看>>
微信多客户端导致重复调用服务接口问题
查看>>
service层@Transactional事务控制使用以及注意
查看>>