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 [...]");
在 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 [...]");