Oracle 用jdbc插入日期
首先这是我们的表
CREATE or replace TABLE dinnerTable(
id number PRIMARY KEY , -- 餐桌主键
tableName VARCHAR(20), -- 餐桌名
tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定
orderDate DATE default sysdate
);
表中的orderDate字段是Oracle的日期类型
在实际项目中我们是用jdbc来操纵数据库
@Override
public void updata(DinnerTable dt) {
String sql = "UPDATE dinnertable SET tableStatus=?,orderDate=? WHERE id=?";
try {
Date date = dt.getOrderDate();
JdbcUtils.getQueryRunner().update(sql, dt.getTableStatus(),date,dt.getId());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
一般在Java中获取日期会经常使用Date这个类,然而,如果之间插入Date这个类型就会报错
这个时候我们需要把Date类型转换一下
Timerstamp
我们需要借助Timerstamp这个类来讲Date转换成可以插入到Oracle中的类型
Date date = dt.getOrderDate();
Timestamp tt = new Timestamp(date.getTime());
再讲转换后的日期插入
@Override
public void updata(DinnerTable dt) {
String sql = "UPDATE dinnertable SET tableStatus=?,orderDate=? WHERE id=?";
try {
Date date = dt.getOrderDate();
Timestamp tt = new Timestamp(date.getTime());
JdbcUtils.getQueryRunner().update(sql, dt.getTableStatus(),tt,dt.getId());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
就大功告成了!