准备
在mysql数据库中有一张stu表,下面是表的结构和数据和Student类
开始测试一(不给值)
情况一:添加一条数据,但是跳过math列
可以看到,表的int类型的默认为null.
查id=2的这条数据,用student类去接
结果math是0,因为实体类的int元素不会是null,会默认给个0
用hashMap<string,string>去接
结果因为这个math字段为null,就直接没接收这个math字段了.
情况二:添加一条数据,但是跳过sex列
可以看到,varchar类型的默认为null.
查id=3的这条数据,用student类去接
结果sex是null,因为实体类的string元素默认也为null.
用hashMap<string,string>去接
结果因为这个sex字段为null,就直接没接收这个sex字段了.
情况三:添加一条数据,但是跳过insertTime列
可以看到,datetime类型的默认为null.
查id=3的这条数据,用student类去接
结果insertTime是null,因为实体类的Date元素默认也为null.
用hashMap<string,string>去接
结果因为这个insertTime字段为null,就直接没接收这个insertTime字段了.
开始测试一(给空字符串)
由于空字符串赋值给表的int和datetime类型的字段会运行报错,所以,我就只试一下表的varchar类型.
情况一:给sex字段加空字符串""
从下图可以看到添加的一行数据中的sex字段是显示一个白色的框,鼠标点进去后鼠标的光标在单元格的最左边.
查id=5的这条数据,用student类去接
可以看到,打印的也是空字符串""
查id=5的这条数据,用map接收并打印结果
可以看到,打印的也是空字符串""
情况二:给sex字段加带几个空格的字符串" "
从下图可以看到添加的一行数据中的sex字段也是显示一个白色的框,鼠标点进去后鼠标的光标离单元格的左边有一段距离.
查id=6的这条数据,用student类去接
可以看到,打印的也是带几个空格的字符串" "
查id=6的这条数据,用map接收并打印结果
可以看到,打印的也是带几个空格的字符串" "
总结:
1.mysql数据库的表中的建表语句中,凡是字段后面跟NULL DEFAULT NULL的,意思就是不给值默认为null, 因此上面表中的int ,varchar 和datetime类型的字段, 没有给它们赋值的时候, 都默认为null
2.用实体类去接收select结果时, 虽然查表的int 类型查出来是null,但是实体类会自动把int改为自己定义的默认值 0 .
3.用map去接收select结果时, 表中为null的字段在map中就直接不接收它们,map只接收非null的字段.
4.给表的varchar类型的字段一个空字符串""或者带空格的字符串" ",表就真的把它们一模一样的存起来了. 而且用实体类或者map接收结果时,是可以接收到空字符串""或者带空格的字符串" ".
-----------------------------------------------------------------------------------------------------------------------------
时间有限,暂时先测试表的字段类型为int ,varchar,datetime 的这三种, 后面有时间或者遇到其他字段类型了再去总结.