本文共 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 { Listquery(); 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 { ListselectAll() 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 ListselectAll() 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 { Listnews = NewsServiceImpl.selectAll(); System.out.println(news); } }}
结果:转存失败
转载地址:http://dthgn.baihongyu.com/