我正在使用 spring JDBC 模板的 queryForInt() 方法。它有两个参数:查询字符串和参数化 SQL 的第二个参数。我有 sql 查询,例如: select count(*) from table X where x.x1=? 和 x.x2=? . 我在参数列表中传递两个整数值:
args.add(12); args.add(50);
DB 中 x1 和 x2 的数据类型为 Number。
这个方法总是抛出 PreparedStatementCallback;SQL [<>>] 的未分类 SQLException;SQL 状态 [99999];错误代码 [17004];无效的列类型
我无法弄清楚出了什么问题。但是,如果我在 SQL 中硬编码参数值并在 queryForInt 的单参数版本方法中使用相同的值;它有效:“从 x.x1=12 和 x.x2=50 的表 X 中选择计数(*)”。这行得通。
知道这里有什么问题吗?我正在使用 spring 3.0.6 版本。