美文网首页
五月三周技术复盘

五月三周技术复盘

作者: 剑道_7ffc | 来源:发表于2020-05-27 11:03 被阅读0次

postgresql的execute

execute表示执行动态命令,即含有变量的db

更新表的创建时间为timestamptz(3)

CREATE OR REPLACE FUNCTION public.tmp_update_create_modify_time()
  RETURNS VARCHAR AS
$BODY$
DECLARE

tableNameRecordCursor REFCURSOR;
tableNameRecord RECORD;
tablename VARCHAR;

BEGIN
      OPEN tableNameRecordCursor FOR 
            SELECT 
                c.relname tableName
            FROM
                pg_class AS c,
                pg_attribute AS a 
            WHERE a.attrelid = c.oid 
                AND a.attnum > 0 
                AND a.attname in('modify_time');
        LOOP
            FETCH tableNameRecordCursor INTO tableNameRecord;
            IF NOT FOUND THEN
                RAISE NOTICE '没有找到表名';
                EXIT;
            END IF;

            EXECUTE 'ALTER TABLE ' || tableNameRecord.tableName || 
            ' ALTER COLUMN "modify_time" TYPE timestamptz(3)';
     END LOOP;

    RETURN '成功';
END 
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

spring默认的集合绑定大小

spring默认的值

org.springframework.validation.DataBinder#setAutoGrowCollectionLimit默认是256

/** Default limit for array and collection growing: 256 */
public static final int DEFAULT_AUTO_GROW_COLLECTION_LIMIT = 256;

手动修改

DataBinder是PropertyEditorRegistry的实现类,所以通过实现PropertyEditorRegistrar来编辑DataBinder的值

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
    @Override
    public void registerCustomEditors(PropertyEditorRegistry registry) {
        //当对象属性有集合时修改数据绑定的List的默认值256
        if(registry instanceof DataBinder){
            ((DataBinder)registry).setAutoGrowCollectionLimit(3000);
        }
    }
}

fastjson的空异常的问题

在json时get方法中报空指针异常

public boolean isGroupBuild(){
        return super.getParentHospitalId().equals(super.getGroupHospitalId());
}

源码分析

com.fasterxml.jackson.databind.ser.BeanSerializerBuilder#build

创建序列化的对象

com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector#collectAll

收集所有的属性

protected void collectAll()
{
    LinkedHashMap<String, POJOPropertyBuilder> props = new LinkedHashMap<String, POJOPropertyBuilder>();

    // First: gather basic data
    _addFields(props);
    _addMethods(props);
}
com.fasterxml.jackson.databind.util.BeanUtil#okNameForRegularGetter

如将getStudentName变成studentName

com.fasterxml.jackson.databind.util.BeanUtil#okNameForIsGetter

如将isGroupBuild变成groupBuild

com.fasterxml.jackson.databind.ser.std.BeanSerializerBase#serializeFields

循环获取值

解决办法

修改方法名

因为fastJson会把get开头和字段当做属性,所以若不想反射调用可以改为其他名称如fetch

使用注解不序列化改字段

@Transient:针对所有的序列化,不序列化改方法
@JsonIgnore:针对fastJson

相关文章

  • 六月前两周记账复盘,省了五百块

    五月开始数据量化记录生活。 五月前两周记账复盘 五月记账复盘,超支九百块 生活记账开始,并且决定两周一复盘。 五月...

  • 《5P复盘TM》| 上海劲泽咨询

    【课程收益】 1、开启自我复盘之旅 2、掌握复盘底层逻辑和操作 3、学习并借鉴企业成功复盘实践 4、学习复盘技术从...

  • 【五月复盘】雕琢自我,普惠他人|5月|seven

    复盘反思 001 复盘和反思需要持续, 002记录要及时,提高效率 =五月复盘内容 5月大事件 6月规划

  • 五月复盘+六月成长计划

    五月复盘 回顾五月~ 理智与感性并存的月份 希望与新生同在...

  • 如何做好项目复盘

    如何做好项目复盘 1 什么时间复盘 定期复盘不定期复盘其他有必要时 2 与会人员 项目经理、需求分析师、商务技术、...

  • 五月三周技术复盘

    postgresql的execute execute表示执行动态命令,即含有变量的db 更新表的创建时间为time...

  • 五月二周技术复盘

    TIMESTAMP和TIMESTAMPTZ 区别 TIMESTAMP:没有时区TIMESTAMPTZ:时区,直接加...

  • 2020-05-31五月阅读营复盘

    五月|成长阅读|营复盘 一、社群运营复盘 1. 出色点 (1)五月成长阅读宣传页 5月1——5号是国庆节假期期间,...

  • 迟到的五月第一周总结

    这个总结应该五月第一个周日做的,但是那几天没有想起来,今天突然想起来,五月还没有复盘呢,今日复盘一下吧。 五月开始...

  • 五月总结

    今天看见小伙伴们开始发总结复盘,才惊觉五月有这样悄悄溜走了!今天我也来对自己的五月做一下复盘吧! 一、关于微商 五...

网友评论

      本文标题:五月三周技术复盘

      本文链接:https://www.haomeiwen.com/subject/tcviahtx.html