关于date类型字段的修改?

13 views
Skip to first unread message

cmaster

unread,
Aug 25, 2008, 3:17:07 AM8/25/08
to DBExplorer
在项目中date类型的字段修改是用spring的NamedParameterJdbcTemplate,如int updateRows =
service.namedJdbcTemplate.update(sql, params);传入的参数是String例
如'2008-08-27',这在项目中是没有问题的,我写了个测试测这个功能确报错:
public void testNameJdbc()
{

String sql ="update BOOK_INFO SET PRESSDATE=:PRESSDATE where
AUTO_ID=:AUTO_ID";



Map<String, Object> params = new HashMap<String, Object>();
params.put("PRESSDATE", "2008-08-27");
// System.out.println("field value is :"+value.getValue());
params.put("AUTO_ID", "4");

System.out.println("test this service:"+this.service);
HelperDBInfoServiceTable helpservice = new
HelperDBInfoServiceTable (this.service,log);
System.out.println("test helpservcie :"+helpservice);
helpservice.executeUpdate(sql, params);


}

报错如下: 执行SQL[update BOOK_INFO SET PRESSDATE=:PRESSDATE where
AUTO_ID=:AUTO_ID]出错:PreparedStatementCallback; SQL [update BOOK_INFO
SET PRESSDATE=? where AUTO_ID=?]; ORA-01861: 文字与格式字符串不匹配
; nested exception is java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配
同样参数为啥我的测试用例通不过那?

cnetwei

unread,
Aug 25, 2008, 4:57:15 AM8/25/08
to dbexp...@googlegroups.com, chs...@vip.sina.com
设置 PRESSDATE 参数时,需要将 "2008-08-27" 转换成 Date 类型。

-----原始郵件-----
寄件者: dbexp...@googlegroups.com [mailto:dbexp...@googlegroups.com] 代
理 cmaster
寄件日期: 2008年8月25日 15:17
收件者: DBExplorer
主旨: 关于date类型字段的修改?

cmaster

unread,
Aug 25, 2008, 10:17:21 PM8/25/08
to DBExplorer
我把int updateRows = service.namedJdbcTemplate.update(sql, params);这句话里的
params参数都遍历打印出来了,没看到在那里把string转成date型吗?
Reply all
Reply to author
Forward
0 new messages