首先,看看我所遇到的问题:JSP接收数据——》对应的数据库表映射类A——》oracle,在这个过程中的类A有一个全局的int变量,对应JSP上的一个input,同时在oracle中设计了一个number进行存储。在设计中我们允许在JSP上的input中不填写,在这种情况下提交时在oracle中插入一个空值,并在将这个空值作为以后流程的一个标记。、
后期调试的时候,每次插入空值的时候,从数据库中取出的该字段都是0,于是在oracle中查看,果然每当我在JSP上的input不输入任何东西时,插入数据库中的值都为0。首先在JSP中的确在这种情况是为空的。
经过蛋疼的检测最后发现,在类A中,当JSP传递给类A该字段为空时,类A初始值就会插入到数据库中,从而造成,JSP为空时,却向数据库中插入0的情况。在这里将这个写出来,以免以后再出现类似状况。
下面我们看看java中各种类型的初始值:
boolean false
char '/uoooo'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
java中基本类型的默认值是0,引用类型会默认为null(引用http://blog.csdn.net/niguang09/article/details/5935933)。
所以当我们在设计数据库时,如果该字段的对应的java变量类型的初始值不为null时就要注意了。