JDBC关于时间的存取

Oracle数据库默认时间存储是java.sql.date,而java程序中的时间默认是java.util.date,所以通过JDBC存取的 时候会涉及到时间的转换问题。

1、日期存取

  存入数据库的时候,先用SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd ");

  进行格式转换,然后用Date d = sbf.parse(birthday);

  即将字符串转换成util.date类型

  stm.setDate(4, new java.sql.Date(d.getTime()));

  即用PreparedStatement替换Sql语句中的问号时转换成数据库默认存储的Date类型。

  取出时间的时候直接用 Date d = rs.getDate("birthday");

  即取出集装箱的数据。

2、时间存取

  数据库中默认不存储具体时间,所以要用到时间戳Timpstamp类来处理

  存入时间的时候,先用SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  进行格式转换,然后用Date d = sbf.parse(birthday); 即将字符串转换成util.date类型

  stm.setTimestamp(4, new java.sql.Timestamp(d.getTime()));这样日期和时间都可以一起存入数据库

  取数据的时候直接用 Date d = rs.getTimestamp("birthday");就可以了

 

说明:由于JDBC属于数据访问层,它是为上一层(业务逻辑层)提供服务的,业务逻辑层一般不与SQL打交道,因此在业务逻辑层是不会
* 用到java.sql包中的任何类。例如:本方法是返回记录的出生日期,即Date类型,将来该方法是在业务逻辑层调用的,所以该
* 方法返回的Date类型应该是java.util包中的Date类,所以需要在该方法内部实现java.sql.Date与java.util.Date之间
* 的转换工作

原文地址:https://www.cnblogs.com/blueness-sunshine/p/4912035.html