gpt4 book ai didi

java - NamedParameterJdbcTemplate 不替换值?

转载 作者:行者123 更新时间:2023-11-30 03:42:26 33 4
gpt4 key购买 nike

我是 Spring 新手,正在尝试编写一个使用 NamedParameterJdbcTemplate 的简单测试方法。这是:

public String test() {
String query = "SELECT CURRENT DATE FROM :table ;";
return String.valueOf(this.namedTemplate.queryForObject(query,
new MapSqlParameterSource("table", "sysibm.sysdummy1"),
String.class));
}

在 DB2 中,该查询应返回今天的日期。但是,我遇到了一个异常(exception):

Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT CURRENT DATE FROM ? ;]; nested exception is com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=?;( XMLTABLE TABLE FINAL OLD, DRIVER=4.13.127

SQLCODE -104 是“非法符号”。我猜这是指 ?。为什么它会得到这个而不是 "sysibm.sysdummy1" 字符串?

最佳答案

您不能将表名称设置为参数。您需要在查询中显式定义它。

关于java - NamedParameterJdbcTemplate 不替换值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26536448/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com