《源码片段收集》一致性hash, sql查询结果映射类

13 篇文章 0 订阅

1. 类名转首字母小写字符串(netty)

if (Character.isUpperCase(poolName.charAt(0)) && Character.isLowerCase(poolName.charAt(1))) {
           return Character.toLowerCase(poolName.charAt(0)) + poolName.substring(1);
}

2. 取余 还是  & , 平均非配到每个槽上.

    public EventExecutorChooser newChooser(EventExecutor[] executors) {
         //如果是2的幂, 则用&的方式.
        if (isPowerOfTwo(executors.length)) {
            return new PowerOfTwoEventExecutorChooser(executors);
         //如果不是,则用取余的方式.
        } else {
            return new GenericEventExecutorChooser(executors);
        }
    }

3.compareAndSet

    private void startThread() {
        if (state == ST_NOT_STARTED) {
            if (STATE_UPDATER.compareAndSet(this, ST_NOT_STARTED, ST_STARTED)) {
                try {
                    doStartThread();
                } catch (Throwable cause) {
                    STATE_UPDATER.set(this, ST_NOT_STARTED);
                    PlatformDependent.throwException(cause);
                }
            }
        }
    }

https://www.cnblogs.com/hqlong/p/6586721.html 

4. 数组替换hashSet

SelectedSelectionKeySet

5. sql查询list做bean的映射

    @Override
    @Transactional(rollbackFor = Exception.class,propagation = Propagation.SUPPORTS)
    public <T1> List<T1> findSql(String sql, Class<T1> clazz, Object... params) {
        if(ReflectUtils.isSimpleType(clazz)){
            return jdbcTemplate.queryForList(sql,params,clazz);
        }
        List<String> lables = new LinkedList<>();
        Map<String,String> propertiesName = listPropertiesName(clazz);
         List<T1> result = jdbcTemplate.query(sql, params, new RowMapper<T1>() {
           @Override
           public T1 mapRow(ResultSet resultSet, int j) throws SQLException {
              ResultSetMetaData rsd =  resultSet.getMetaData();
              int count = rsd.getColumnCount();
              if(lables.size()==0){
                  for(int i=1;i<=count;i++){
                     String name = rsd.getColumnLabel(i);
                     lables.add(propertiesName.get(name));
                  }
              }
              Map<String,Object> temp = Maps.newHashMap();;
              for(int i=1;i<=count;i++){
                  temp.put(lables.get(i-1),resultSet.getObject(i));
              }
               return ReflectUtils.changeMapToBean(temp,clazz);
           }
       });
      return result;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值