我的应用程序动态创建表,我不知道如何使用Spring jdbc读取表而不将其硬编码到字符串查询中。我在考虑这样的事情:
jdbcTemplate.query("SELECT * FROM ?", new Object[] { tableName }, new TableMapper());
但春天不喜欢问号: - (
感谢您的帮助!
答案 0 :(得分:5)
尝试String query = String.format("SELECT * FROM %s", tableName);
答案 1 :(得分:4)
一句解释:Spring
不是这里的责任,从数据库驱动程序中一直抛出异常。 PreparedStatement
不允许对表名进行参数化,您只能将?
应用于查询参数。如the other answer中所述,解决此问题的唯一方法是将其插入查询字符串中。