赞
踩
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>3.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-pool2</artifactId>
- <version>2.6.0</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
- spring:
- datasource:
- url: jdbc:mysql://localhost:3306/mylove?serverTimezone=GMT-8
- driver-class-name: com.mysql.cj.jdbc.Driver
- username: root
- password: root
- redis:
- database: 0
- host: 127.0.0.1
- port: 6379
- jedis:
- pool:
- max-wait: 1000ms
- max-active: 8
- min-idle: 5
- max-idle: 8
- mybatis-plus:
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
1.jedis链接类
- @Configuration
- //链接redis 获取appliaction.yml 里的数据以spring.redis开头的方式
- @ConfigurationProperties(prefix = "spring.redis")
- public class JedisUtil {
- //属性名字和配置文件中必须一致,还要提供get和set方法
- private String host; //读取到spring.redis.hostg.redis.port
- private int port;//sprin
-
-
- @Bean
- public JedisPool jedisPool(){
- JedisPool jedisPool = new JedisPool(host,port);
- System.out.println("已连接:"+host+"上的redis,端口号为:"+port);
- return jedisPool;
- }
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public int getPort() {
- return port;
- }
-
- public void setPort(int port) {
- this.port = port;
- }
- }
2.json转化工具类
- @Component
- public class JsonUtils {
-
- // 定义jackson对象
- private static final ObjectMapper MAPPER = new ObjectMapper();
-
- /**
- * 将对象转换成json字符串。
- * <p>Title: pojoToJson</p>
- * <p>Description: </p>
- * @param data
- * @return
- */
- public static String objectToJson(Object data) {
- try {
- String string = MAPPER.writeValueAsString(data);
- return string;
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * 将json结果集转化为对象
- *
- * @param jsonData json数据
- * @param class 对象中的object类型
- * @return
- */
- public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
- try {
- T t = MAPPER.readValue(jsonData, beanType);
- return t;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * 将json数据转换成pojo对象list
- * <p>Title: jsonToList</p>
- * <p>Description: </p>
- * @param jsonData
- * @param beanType
- * @return
- */
- public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
- JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
- try {
- List<T> list = MAPPER.readValue(jsonData, javaType);
- return list;
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- return null;
- }
-
- }
3.redis操作类
- @Service
- public class RedisServiceImpl implements redisDao {
- @Autowired
- private JedisPool jedisPool;
-
- /**
- * 查询key的value值
- * @param key
- * @return
- */
- @Override
- public String getValue(String key) {
- //连接redis
- Jedis jedis = jedisPool.getResource();
- //操作redis
- String s = jedis.get(key);
- //关闭连接
- jedis.close();
- return s;
- }
-
- /**
- * 删除redis里的key-value值
- *
- * @param key String
- * @return long
- */
- @Override
- public Long delValue(String key) {
- //连接redis
- Jedis jedis = jedisPool.getResource();
- //操作redis
- Long del = jedis.del(key);
- //关闭连接
- jedis.close();
- return del;
- }
-
- @Override
- public String setValue(String key, String val) {
- //连接redis
- Jedis jedis = jedisPool.getResource();
- //操作redis
- String s = jedis.set(key, val);
- //关闭连接
- jedis.close();
- return s;
- }
-
- @Override
- public Long expire(String key, int seconds) {
- //连接redis
- Jedis jedis = jedisPool.getResource();
- //操作redis
- Long aLong = jedis.expire(key, seconds);
- //关闭连接
- jedis.close();
- return aLong;
- }
- }
三:编写service层代码
- @Service
- public class goodsServiceImpl extends ServiceImpl<GoodsMapper,goods> implements goodsService {
- @Autowired
- RedisServiceImpl redisServiceImpl;
- @Autowired
- GoodsMapper goodsMapper;
- @Autowired
- com.yq.mapper.typeMapper typeMapper;
-
- int i=0;
-
- /**
- * 查询出所有信息,并将数据缓存到redis中
- * @return goods类型所有数据
- */
- @Override
- public List<goods> findListGood() {
- String list = redisServiceImpl.getValue("goodList");
- if (list == null) {
- List<com.yq.entry.goods> goods = goodsMapper.selectList(null);
- redisServiceImpl.setValue("goodList", JsonUtils.objectToJson(goods));
- return goods;
- }
- return JsonUtils.jsonToList(list, goods.class);
- }
-
- /**
- * goods并缓存数据
- *
- * @param
- * @return int
- */
- @Override
- public int addGoods(goods io) {
- String name = io.getName();
- String value = redisServiceImpl.getValue(name);
- if (value == null) {
- redisServiceImpl.setValue(name, JsonUtils.objectToJson(io));//向redis里添加新增数据
- }
- return 1;
- }
-
- /**
- * 类型信息,缓存到redis中
- * @return list<type>
- */
- @Override
- public List<types> getType() {
- String list = redisServiceImpl.getValue("typeList");
- if (list == null) {
- List<types> types = typeMapper.selectList(null);
- redisServiceImpl.setValue("typeList", JsonUtils.objectToJson(types));
- return types;
- }
- return JsonUtils.jsonToList(list, types.class);
- }
-
- /**
- * 更新信息
- * @param good 物品信息
- * @return int
- */
- @Override
- public int updateGoods(goods good) {
- redisServiceImpl.delValue("typeList");
- redisServiceImpl.delValue("goodList");
- return goodsMapper.updateById(good);
- }
-
- /**
- * 根据id查询物品信息
- * @param id 物品id
- * @return 物品对象
- */
- @Override
- public goods findByIdGoods(int id) {
- QueryWrapper<com.yq.entry.goods> qw = new QueryWrapper();
- qw.eq("id", id);
- return goodsMapper.selectOne(qw);
- }
- /**
- * 删除信息并备份信息
- * @param id 物品id
- * @return int
- */
- @Override
- public int delGoods(int id) {
- goods goods = goodsMapper.selectById(id);
- QueryWrapper<goods> ww = new QueryWrapper<>();
- ww.eq("id", id);
- int i = goodsMapper.delete(ww);
- if (i >= 1) {
- redisServiceImpl.delValue("goodList");
- //如果删除成功,则把信息存放到redis中
- redisServiceImpl.setValue("delGoods",JsonUtils.objectToJson(goods));
- //查看是否还有相同类型的物品
- QueryWrapper<goods> qw = new QueryWrapper<>();
- qw.eq("type", goods.getType());
- List<goods> list = goodsMapper.selectList(qw);
- //如果没有,则删除类型表里的该这段
- if (list == null) {
- QueryWrapper<types> qw1 = new QueryWrapper<>();
- qw1.eq("id", goods.getType());
- int i1 = typeMapper.delete(qw1);
- return 2;
- } else {
- return 1;
- }
- }
- return 0;
- }
- /**
- * 还原上次删除操作
- * @return
- */
- @Override
- public int withdrawByGoods() {
- String goods = redisServiceImpl.getValue("delGoods");
- if (goods!=null){
- goods o = JsonUtils.jsonToPojo(goods, goods.class);
- redisServiceImpl.delValue("goodList");
- int i = goodsMapper.insert(o);
- redisServiceImpl.delValue("delGoods");
- }
- return 0;
- }
- @Override
- public int addRedis(goods goods) {
- redisServiceImpl.setValue(i+"",JsonUtils.objectToJson(goods));
- System.out.println(i+" <================");
- return i++;
- }
- @Override
- public int addAllRedis() {
- String value = redisServiceImpl.getValue(i + "");
- System.out.println(value+"<===============");
- for (int j = 0; j <3 ; j++) {
- goods goods1 = JsonUtils.jsonToPojo( redisServiceImpl.getValue(j + ""), goods.class);
- goodsMapper.insert(goods1);
- redisServiceImpl.delValue(j+"");
- }
- redisServiceImpl.delValue("goodList");
- return 1;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。