如何在jdbc namedparameter中添加日期

时间:2012-12-04 13:03:08

标签: java jdbctemplate named-parameters

我有以下代码:

conditions.add("mydate = str_to_date('"+date_from_user+"', '%Y-%m-%d')");

以上工作正常,但由于我从用户那里获取输入并在我的查询中推送它,我冒着查询的安全性的风险。所以我想使用命名模板,所以我将代码更改为:

conditions.add("mydate = str_to_date(':mydate', '%Y-%m-%d')");
namedParams.put("mydate", date_from_user);

但是,上面的代码不起作用并产生以下错误消息:

<SQLWarning ignored: SQL state 'HY000', error code '1411', message [Incorrect datetime value: ':mydate' for function str_to_date]>

所以似乎namedparameter没有拿起值..

2 个答案:

答案 0 :(得分:0)

您是否尝试删除':mydate'中的引号并将其更改为

conditions.add("mydate = str_to_date(:mydate, '%Y-%m-%d')");
namedParams.put("mydate", date_from_user);

答案 1 :(得分:0)

首先检查您的数据库服务器日期格式。然后以相同的格式输入。在相同的Object中创建日期对象或以相同的格式传递字符串。