关于Oracle驱动里的oracle.sql.TIMESTAMP

个人觉得Oracle在日期类型对象方面,自己的JDBC驱动不兼顾JDK的标准类,其实是为了数据安全考虑,毕竟Date不是基础数量类型,不知道jdk啥时候能将Date归为基础数据类型,像String,Integer一样使用。
我想好多朋友遇到过此类问题。这里不再详述。

个人的解决方案:

private String getDate(Object value) {

Timestamp timestamp = null;
try {
timestamp = (Timestamp) value;
} catch (Exception e) {
timestamp = getOracleTimestamp(value);
}
if(timestamp!=null)
return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S")) .format(timestamp);
else return null;
}
/**
* @reference oracle.sql.Datum.timestampValue();
* @return
*/
private Timestamp getOracleTimestamp(Object value) {
try {
Class clz = value.getClass();
Method m = clz.getMethod("timestampValue", null);
//m = clz.getMethod("timeValue", null); 时间类型
//m = clz.getMethod("dateValue", null); 日期类型
return (Timestamp) m.invoke(value, null);

} catch (Exception e) {
return null;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值