每日知识记载总结52

  1. fastjson使用

     //(1)转换为字符串 保存
     JSON.toJSONString(value, SerializerFeature.WriteClassName)
     
     // 注意第一项 需要加入类型信息,不然将来字符串转化为对象时会报错 
     // Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONObject 
     // cannot be cast to com.exa.demo2.PO.PeopleInfoPO
     
     //(2)转换Object为对象
     Record rec = (Record)JSON.parse(obj.toString());
    
     // 注意第二项 Record 对象需要有无参构造器
     
     // 注意第三项 Record 对象需要有无参构造器
     // 项目启动时 需要设置VM参数 
     // idea -Dfastjson.parser.autoTypeSupport=true
     // sh脚本  java -server -Dfastjson.parser.autoTypeSupport=true -jar minitools-0.0.1-SNAPSHOT.jar 
     // 注意 参数配置需要卸载jar包前
    
  2. redis 部分知识
    redis key value 数据最大值都是512M
    redis 保存集合对象的时候 无法设置过期时间 可以对key设置过期时间

     /**
      * 将list放入缓存
      * @param key 键
      * @param value 值
      * @param time 时间(秒)
      * @return
      */
     public boolean lSet(String key, Object value, long time) {
         try {
             redisTemplate.opsForList().rightPush(key, JSON.toJSONString(value, SerializerFeature.WriteClassName));
             if (time > 0) expire(key, time);
             return true;
         } catch (Exception e) {
             e.printStackTrace();
             return false;
         }
     }
    
     /**
      * 指定缓存失效时间
      * @param key 键
      * @param time 时间(秒)
      * @return
      */
     public boolean expire(String key,long time){
         try {
             if(time>0){
                 redisTemplate.expire(key, time, TimeUnit.SECONDS);
             }
             return true;
         } catch (Exception e) {
             e.printStackTrace();
             return false;
         }
     }
    
  3. Java中length,length(),size()的区别(来源)

    length:是针对数组来说的,如果写了一个数组,想要知道数组的长度,则可以使用这个属性;

    length():是针对字符串String来说的,如果想看这个字符串的长度则用length()这个方法;

    size():是针对泛型集合来说的,如果想要知道这个泛型集合中有多少元素,即可使用size()这个方法。

     import java.util.ArrayList;
     import java.util.List;
    
     public class Test {
         public static void main(String[] args) {
     
             char s[]={'2','3','5','4','6','9'};//数组,用length
             System.out.println(s.length);
     
             String a="Hello World";//字符串,用length()
             System.out.println(a.length());
     
             List<String> a1=new ArrayList<String>();//集合,用size()
             a1.add("234");//集合中添加了一个元素
             System.out.println(a1.size());
     	}
     }
     // 结果是:  6  11  1
    
  4. case when 用法

     <!-- 判断是否为某个值 -->
     case purchase_info.perform_status
     when 2
     then
       sum( purchase_entries.receive_count * merchant_product.sale_base_price )
     else
       sum( purchase_entries.purchase_count * purchase_entries.product_price )
     end as purchaseFaxAmount,
    
     <!-- 判断是否为空 -->
     case when wp.buy_amount is not null
     then
     SUM(wp.buy_amount)
     else
     SUM( IFNULL( wp.sale_count, 0 ) * IFNULL( wp.sale_price_include_tax, 0 ) ) end as wpba,
原文地址:https://www.cnblogs.com/cuiyf/p/11378385.html