JAVA连ORACEL数据库,动态拼接的SQL运行时单引号总是一个变两
在线等解决方案哈,SQL的查询条件是在JAVA里面动态拼接的,传过去时单引号变成了两个,网上找了很多方法,比如说组装时用两个单引号''来代替一个单引号',或者加转义符用\'来代替'等等都解决不了
SQL在XML里面配置如下:
SELECT *
FROM
LOG_ATTR
WHERE
LOG_ATTR.CREATE_TIME >= ${startDate}
JAVA代码如下:
param.put("startDate", "to_date('" + searchInput.getStartDate() + " 00:00:00' , 'yyyy-mm-dd hh24:mi:ss')");
searchInput.getStartDate()返回为String类型的日期值
最后运行时生成的SQL代码是:
SELECT *
FROM
LOG_ATTR
WHERE
LOG_ATTR.CREATE_TIME >= to_date(''2012-12-22 00:00:00'' , ''yyyy-mm-dd hh24:mi:ss'')