0

如标题所述,通过其 populate() 方法将包含 TINYINT(1) 列的 ResultSet 提供给 CachedRowSet 将将该列中的值转换为布尔值,其中 0 为 false ,以上任何值为 true 。这会丢失原始值并使对该列的 getInt() 调用引发异常。

可以禁用此行为吗?TINYINT(1) 对于硬编码类型和状态也非常有用。这是一个 1 位数字,而不是 1 为最大值的数字。真的,没有理由将其视为布尔值。

在实例化 CachedRowSetImpl 时我能做些什么来禁用它?

4

1 回答 1

0

在你的 SQL 中使用cast,所以你得到一个正常的 int:

select cast(tinyIntColumn as int) from someTable
于 2012-07-05T22:51:05.300 回答