zoukankan      html  css  js  c++  java
  • 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之间
    * 的转换工作

  • 相关阅读:
    [转] 数学原理浅谈一下《黑客帝国》
    [转] 应聘Java笔试时可能出现问题及其答案(第八部分)
    经典排序之堆排序
    求全排列算法简单的实现
    求一个整数因式分解
    adk环境变量配置
    经典排序之希尔排序
    快速求幂算法
    判断一个数字是否为素数的基于C语言的算法
    高次幂求模
  • 原文地址:https://www.cnblogs.com/blueness-sunshine/p/4912035.html
Copyright © 2011-2022 走看看