i有一个具有20列以上的数据库,其中一些是带有null值的date
/timestamp
数据类型。
Java应用程序将从该表中读取数据并插入其他表。准备好的语句用于插入查询。在插入记录时,我会在日期列上" null指针异常" 在null的任何地方。对于Varchar
,当实际值为null时,它会自动设置为null。有什么方法可以自动处理带有零值的日期字段,例如准备语句中的varchar
?
PreparedStatement ps = null;
....
....
ps.setDate(3, new java.sql.Date(date.getTime())); //date is Java.Util.Date
获取错误。所以我手动处理以下
if(date!= null)
ps.setDate(3, new java.sql.Date(date.getTime()));
else
ps.setNull(3, Types.DATE);
当然,您正在尝试在date
上调用getTime
,这可能是null
。
Java应用程序将从该表中读取数据并插入其他表。
如果这是真的,那么我希望 date
to 是java.sql.Date
(或null
(,您可以直接使用它:
ps.setDate(3, date);
如果date
确实不是java.sql.Date
,则可以使用条件操作员:
ps.setDate(3, date == null ? null : new java.sql.Date(date.getTime()));
可以将null
传递到setDate
(出于相同的原因,它在setString
中起作用(。当您与列一起使用的Java类型是原始类型(例如int
(时,您只需要setNull
。由于您无法使用null
拨打CC_19的setInt
,因此您将在这种情况下使用setNull
。不过,这不是setDate
的问题。