我在 Mysql 5 db 中有表,其名称以美元符号“$”为前缀,即表名 $MYTABLE
我正在使用 Spring 3.0 JdbcTemplate 进行选择查询,但无法使其正常工作。
IE
String tablename = "$AAPL";
private static final String STOCK_SELECT =
"select symbol, open, high, low, close, vol, ev from ?";
jdbcTemplate.query(STOCK_SELECT,
new Object[] { tablename },
new RowMapper() { .... } );
这将始终抛出 InvalidSqlException,大概是因为 $ 符号。如果我只是做一个没有参数的普通查询,即。
private static final String STOCK_SELECT =
"select symbol, open, high, low, close, vol, ev from $AAPL";
然后一切正常。
如何使用 jdbcTemplate 转义 $ 符号?
-- 编辑,我最终做了什么 --
我没有将表名“$AAPL”传递给 jdbcTemplate,而是手动创建 SQL 字符串,即
jdbcTemplate.query( getStockSelect("$AAPL", .., .. ));