java.util.date 和 java.sql.date 两者之间区别!

今天在调用一存储过程中setDate参数过程是出错,查资料才发现setDate的参数必须是java.sql.date类型
代码如下:
CallableStatement cstmt;
try {
cstmt = this.getHibernateTemplate().getSessionFactory().getCurrentSession().connection().prepareCall("{call sp_过程名称(?,?)}");

//查询参数
if(oc.getMadeDate()!=null){
[color=red]cstmt.setDate(1,new java.sql.Date(oc.getMadeDate().getTime()));[/color]
}else{
cstmt.setDate(1,null);
}
//返回参数
cstmt.registerOutParameter(2,Types.VARCHAR);
cstmt.execute();
return cstmt.getString(2);

} catch (Exception e) {
e.printStackTrace();
return "操作失败!";
}


引申了解一下java.util.date与java.sql.date的关系与区别:
继承关系:
java.lang.Object --》 java.util.Date --》 java.sql.Date
具体的转换关系就是
java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反过来是一样的
java.util.Date date=new Java.util.Date();
java.sql.Date d=new java.sql.Date (date.getTime());

sql.date,一般是在数据库的时间字段,util.date一般是日常日期字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值