zoukankan      html  css  js  c++  java
  • 开发中遇到问题

    今天在生产中遇到了并发导致数据null的问题:

    代码:

     public static String getAddressName(String type, String code) {
          /*String strReturn = "";
             ExeSQL exeSql = new ExeSQL();
             String sql = "select placeName from ldaddress where placeType='" + type
                     + "' and placeCode='" + code + "'";
             strReturn = exeSql.getOneValue(sql);
             return strReturn;*/
    //     缓存减少查询次数
          if(addressName == null || !addressName.containsKey( type + "_" + code )){
           addressName = new HashMap<String, String>();
           String sql = "select placeType,placeCode,placeName from ldaddress";
           ExeSQL exesql = new ExeSQL();
           SSRS ssrs = exesql.execSQL(sql);
           String key = null;
           String value = null;
           for (int i = 1; i <= ssrs.getMaxRow(); i++) {
        key = ssrs.GetText(i, 1) + "_" + ssrs.GetText(i, 2);
        value = ssrs.GetText(i, 3);
        addressName.put(key, value);
       }
          }
          return addressName.get( type + "_" + code );
    //  end
        }

    问题解决:

    public static String getAddressName(String type, String code) {
      /*
       * String strReturn = ""; ExeSQL exeSql = new ExeSQL(); String sql =
       * "select placeName from ldaddress where placeType='" + type +
       * "' and placeCode='" + code + "'"; strReturn =
       * exeSql.getOneValue(sql); return strReturn;
       */
      // start  缓存减少查询次数
      synchronized (addressName) {
       if (!addressName.containsKey(type + "_" + code)) {
        String sql = "select placeType,placeCode,placeName from ldaddress";
        ExeSQL exesql = new ExeSQL();
        SSRS ssrs = exesql.execSQL(sql);
        String key = null;
        String value = null;
        for (int i = 1; i <= ssrs.getMaxRow(); i++) {
         key = ssrs.GetText(i, 1) + "_" + ssrs.GetText(i, 2);
         value = ssrs.GetText(i, 3);
         addressName.put(key, value);
        }
       }
      }
      return addressName.get(type + "_" + code);
      // end
     }

  • 相关阅读:
    npm install命令请求制品库地址的说明
    左merge,右cherry-pick
    Spring validation中自定义的校验错误提示信息如何支持国际化
    IntelliJ IDEA中新增properties文件
    RequestFacade对象获取请求头时忽略大小写
    MongoDB高可用架构集群管理(一)
    MongoDB的备份和恢复
    Postman使用tv4进行JSON Schema结构验证和断言
    Postman中的全局/环境/集合变量的使用及优先级
    在Postman脚本中发送请求(pm.sendRequest)
  • 原文地址:https://www.cnblogs.com/gtaxmjld/p/5238467.html
Copyright © 2011-2022 走看看