发表于: 2017-09-08 17:53:05

1 968


【今日完成】

成功配好了Spring-Data-Redis,昨天按照博客一步一步配置,结果还是失败了,不服气。于是今天又去仔细研究了一下,发现博客下面给出了代码地址。我就高高兴兴的去看源代码了。

把代码下载下来发现,居然博客里代码是不完全的。。。怪不得跑不起来啊。真的无语凝噎。

下面来介绍一下代码:

其实代码布局还是比较简单,就三个。

一开始是一个序列化的类,因为Redis只支持String和Byte【】,所以需要序列化转换。

/**
* 使用Jackson自定义json序列化工具
*/
public class JsonRedisSeriaziler {
public static final String EMPTY_JSON = "{}";  
   
   public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");  
     
   protected ObjectMapper objectMapper = new ObjectMapper();  
   public JsonRedisSeriaziler(){}

/**
    * java-object as json-string
    * @param object
    * @return
    */  
   public String seriazileAsString(Object object){
if (object== null) {
return EMPTY_JSON;  
       }
try {
return this.objectMapper.writeValueAsString(object);  
       } catch (Exception ex) {
throw new SerializationException("Could not write JSON: " + ex.getMessage(), ex);  
       }
}

/**
    * json-string to java-object
    * @param str
    * @return
    */  
   public <T> T deserializeAsObject(String str,Class<T> clazz){
if(str == null || clazz == null){
return null;  
       }
try{
return this.objectMapper.readValue(str, clazz);  
       }catch (Exception ex) {
throw new SerializationException("Could not write JSON: " + ex.getMessage(), ex);  
       }
}
}


其次是一个Order,这是一个POJO类,特别要注意的是里面有一个序列化:

public class Order implements Serializable{
private static final long serialVersionUID = 1L;
 
  private String id;
  private String orderNo;
  private double price;
  private Date createDate;
 
  public Order(String id,String orderNo,double price,Date createDate){
this.id = id;
     this.orderNo = orderNo;
     this.price = price;
     this.createDate = createDate;
  }


最后一个DAO类,里面定义了3个方法,save,read,delete。满足了基本功能。

@Repository
public class OrderDao {

@Autowired
  private RedisTemplate<String,Order> redisTemplate;

  public void save(Order order) {
/*redisTemplate.opsForList();
     redisTemplate.opsForSet();
     redisTemplate.opsForHash()*/
     ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
     valueOper.set(order.getId(), order);
  }

public Order read(String id) {
ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
     return valueOper.get(id);
  }

public void delete(String id) {
ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
     RedisOperations<String,Order> RedisOperations = valueOper.getOperations();
     RedisOperations.delete(id);
  }
}

至此一个完整的Redis工具类就OK了。经过验证也确实能运行。明天就准备配置到工程中了。


===================================================================


今天又看了付老师的洗骨换髓营——数据结构:


线性表:有限个元素组成的有限序列。

特点:内存空间连续,逻辑上相连,物理空间地址也相连。


当一个线性表为链式储存时,我们就称为“链表”,链表的节点中一般有一个指针指向下一个,也有一个空间是储存实际内容


数组:

数组的特点是储存的类型必须相同


树:

树是一种非线性的储存结构,有时候发现问题无法用线性来解决,就会动用树。


树里有二叉树和哈夫曼树两种比较特殊的树:




【明日计划】

提交任务六,开始任务七


【今日收获】

搞好了Jedis。

学习了基本数据结构


【任务进度】

虽然延期了,但马上就要搞定了

http://task.ptteng.com/zentao/project-burn-268.html


返回列表 返回列表
评论

    分享到