时间:2021-07-01 10:21:17 帮助过:22人阅读
程序中使用java.util.Date类型与数据库中的date类型数据不匹配;例如,假设数据表如下图所示:
而在程序中代码为:
INSERT INTO table VALUES(1,new Date(),'detail') 其中Date() 为java.util.Date()类型。那么此时不能插入成功。
解决方法:
a.在程序中使用java.sql.Date类型
b.在程序中使用字符串类型,如"2014-7-11";而在数据表中仍然用date类型,因为数据库会自动将字符串类型转化成相应的date类型
c.在程序和数据表中均使用字符类型,这样数据库的效率会更快
2、关于数据库插入数据时单引号( ' )问题
如果数据表类型为数字型时,插入数据可以不加单引号;对于varchar类型数据,则应该加单引号,如果不加单引号,mysql默认其为数字型,此时则可能出现不匹配(不能转化成数字型数据)的情况而不能插入,但是如果其value值与其对应的属性相同,此时则表示此属性对应的值为null或者“ ”。
例如(表结构如上图所示),
执行如下操作时:
因为第三个字段不能转化成数字型,所以出错。而当将第三个字段改变数字型时结果如下:
而当将第三个字段改变其属性名之后,结果如下:
第三个字段(detail)为空串(因为表中要求detail不能为null),否则第三个字段(detail)为NULL。