工作中碰到的问题集锦

1.MySQL text属性不能设置默认值
2.insert 如果不指定某列,即使这列有not null约束,也会为该列插入null值。
3.thrift返回值里有map这种对象,若map里面有个键对应的值是null,这种也不行,thrift会报value is null的错误
4.mapstruc 中@named方法需要是public的,否则无法被mapstruct实现类所调用
5.

class Pad3 extends Computer3{  //子类:平板电脑
    
    String sayhello(){             //重写父类方法‘打招呼’
        return super.sayHello()+ "ipad";//调用父类方法并添加字符串
    }
    public static void main(String[] args) {
        Computer3 pc = new Computer3();     //实例化父类对象
        System.out.println(pc.sayHello());
        Pad3 iPad =new Pad3();  //实例化子类对象
        System.out.println(iPad.sayhello());
    }
    
}
class Computer3{           //父类:电脑	
    
    public String sayHello() { //方法:打招呼
        return "欢迎使用"+this;
    }
}

这里的this实际上还是指向子类对象
6.
controller接口不要用泛型,用一个对象包装一下
7.
mvn dependecy:tree命令的使用
8.
maven获取依赖的原则:

  1. “近者优先”,如A->B->X(1.0)和A->C->D->X(2.0),两条依赖路径依赖了不同版本的X,要注意在整个项目依赖体系中,同个groupId和artifactId的构件只能存在一份,不然就会造成依赖重复,所以这里X只能选一个。所以Maven按照近者优先,选取了X(1.0)版本。
    2.“先声明者优先”,如A->B->X(1.0)和A->C->X(2.0),两个版本的X离A一样近,则看A的POM.xml文件中,B和C哪个先声明,如果B的依赖声明在C之前,那么X(1.0)就会被解析使用。
    有一点要注意,可选的依赖是不会被传递的,所以如果B->X(1.0)是一个可选依赖,若A需要用到X包,它需要自己显式的声明X的依赖。回到exclusions中,它主要用于排除传递性依赖,比如A->B->X(1.0),如果X包是快照版本,而我们想要一个稳定版本,或者因为版权原因,X包不存在于仓库中,则我们可以先用exclusions将X包排除,再显式声明我们需要的依赖版本。这里有一点要提的是,可选依赖是不能够传递的,所以必须显式声明依赖。

mybatis返回对象为null的情况:这个对象的所有字段都为空
9.
刷数据时,
1.确定一个时间范围,代码修正后的数据不用刷新
2.刷数据时,同时也可能其他程序再写入数据,如果刷数据的速度没有写数据快,可能永远也刷新不完了
10.
边分页查询边修改与查询条件有关的字段,会导致部分记录没有查到,
比如按更新时间查询,然后查出来改个字段,并修改utime这个时候下次再查的时候按照给定的条件,除了分页参数,查到的记录是和之前不一样的,但是偏移量还是照常增加,这会导致部分记录查不出来。
比如查询今天零点之前(按照utime)的记录,按照给定的条件初次时记录总数为100条,分页参数时0,20,这个时候查出来100条的前20条记录,然后修改utime为当前时间,更新进入数据库,下次按照分页参数20,20来查询,由于100条记录只有80条是今天零点之前,因此这次查询会直接将80条记录的第20-40条查询出来,如此80条记录的前20条就查不出来了,被遗漏掉
11.
原文说这个sql排序无效的说法是错误的。实际上说order by code,name desc等同于order by code asc, name desc
12.
multykeymap要求put键时的类型和get用的键类型一致,否则取不出来
13.
thrift不能用bigdecimal类型
14.
bigdecimal除以操作时,需要设置精度,如divide(a,2),否则若除不尽时会报错,java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result
使用其他类型转换成bigdecimal时,注意null。
15.
关于数据库查询性能:
70000多条数据全表查询就会超时;
in 500多个(多个列时),就可能出现性能问题

你可能感兴趣的:(开发常见问题)