JAVA连ORACEL数据库,动态拼接的SQL运行时单引号总是一个变两

smuwcwt smuwcwt 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

在线等解决方案哈,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'')
...全文
评论 15
收藏 已收藏
分享
返回顶部
smuwcwt
Java EE 67,535 成员 225,843 内容