PreparedStatement ResultSet - 列包含所选列名称作为字符串而不是所选列的实际值

PreparedStatement ResultSet - Column contains selected column name as String instead of actual values of selected column

在 Java 中使用 PreparedStatement 我 运行 遇到了一个我无法通过 SO 或搜索网络解决的奇怪情况。

preStatement = connection.prepareStatement("SELECT ?, Date FROM " + paramTable + " WHERE [...]");
preStatement.setString(1, paramColumn);
ResultSet rs = preStatement.executeQuery();
preStatement.close();

这里的问题是从 paramTable table 中选择的列 paramColumn 只包含数据库中的 float-Type 值,但是当我执行PreparedStatement 第一列返回数据库类型 nvarchar.

例如,如果我 SELECT MyValue, Date FROM ValueTable ResultSet 看起来像

________________________
| MyValue | Date       |
| MyValue | 2014-09-09 |
| MyValue | 2014-09-10 |
....

虽然它应该看起来像

________________________
| MyValue | Date       |
| 26,567  | 2014-09-09 |
| 28,623  | 2014-09-10 |
....

当我在管理控制台中执行 SQL 语句时,我得到正确的值没有问题,但在 Java 中,该列始终包含作为 String 的列名。

只需连接查询字符串中的列名

preStatement = connection.prepareStatement("SELECT "+paramColumn+", Date FROM " + paramTable + " WHERE [...]");