这是我写一个小工程的第三篇总结,从这篇开始,记录我在开发过程中碰到的各种坑。
java.sql.Date 和java.util.Date并不相同
虽然java.util.Date
是java.sql.Date
,java.sql.Time
,java.sql.Timestampe
的父类,但是这几个类之间并没有遵循里氏替换原则,java.sql.Date
只保存了日期信息,没有时间信息,java.sql.Time
只有时间信息,没有日期信息,也就是说在访问数据库的时候,最好将java.util.Date
与java.sql.Timestampe
做对应,当然这也要看具体业务要求。
另附搜索到的JDBC中PreparedStatement.setDate()
方法的注意事项
如果使用setDate(index, new java.sql.Date(new util.Date().getTime()));
方法会损失时间,可以使用Timestamp来处理
设置使用setTimestamp(index, new java.sql.Timestamp(System.currentTimeMillis()));
获取使用java.util.Date dt = rs.getTimestamp(index);