建了的一个存储过程,需要传 DATE 类型的参数: 如下:
PROCEDURE Synchronous_OrdersInfo_Data(start_date IN DATE,end_date IN DATE)
·········
在java代码中如下调用(时间类型为java.sql.Date),即使数据库有数据,不能正确返回结果集:
public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
//………………
cs.setDate(3, new java.sql.Date(kssj.getTime()));
cs.setDate(4, new java.sql.Date(jssj.getTime()));
//………………
}
因为使用cs.setDate()给数据库传参数只会日期部分,所以上面的方法会导致 “类型错误”。
应该改用一下方法传参:
cs.setTimestamp(3, new java.sql.Timestamp(dKssj.getTime()));
cs.setTimestamp(4, new java.sql.Timestamp(dJssj.getTime()));
cs.setTimestamp()可以将日期和时间部分都传给数据库。
这样就解决了,呵呵
最后
以上就是腼腆摩托最近收集整理的关于java 存储过程 date_java调用存储过程 中DATE参数的处理的全部内容,更多相关java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复