DbUnit-query 返回 BigInteger 类型的数据

Posted

技术标签:

【中文标题】DbUnit-query 返回 BigInteger 类型的数据【英文标题】:DbUnit-query returning data of type BigInteger 【发布时间】:2012-02-13 04:56:50 【问题描述】:

我是 DbUnit 新手,在运行集成测试时遇到以下问题。

我正在使用内存 h2 数据库,并已根据我的要求创建了表。

在运行返回客户 ID 计数的特定查询时,我得到一个类转换异常,因为使用 DbUnit 运行返回的结果集(对于这个“计数”)是 BigInteger 类型,而我的数据 bean 属性以及测试表列类型为“int”。

请告诉我为什么我会在结果中得到这个 BigInteger 类型?

提前致谢。

【问题讨论】:

【参考方案1】:

返回的列是一个表达式,即 count(x),而不是列本身 (x)。有时,列上的函数结果可能会导致类型提升。来自“积分类型”下的http://hsqldb.org/doc/2.0/guide/guide.html

表达式中的中间整数值的大小没有内置限制。因此,您应该检查 ResultSet 列的类型并选择适当的 getXXXX() 方法来检索它。或者,您可以使用 getObject() 方法,然后将结果转换为 java.lang.Number 并对结果使用 intValue() 或 longValue() 方法。

【讨论】:

谢谢...它很有帮助...之前我认为它的 dbunit 但后来意识到它是 h2 db 这是根本原因。

以上是关于DbUnit-query 返回 BigInteger 类型的数据的主要内容,如果未能解决你的问题,请参考以下文章

java.math包下计算浮点数和整数的类

UVA - 10494 If We Were a Child Again

Kotlin 协程Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合 )

Kotlin 协程Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合 )

使用fiddler修改返回值以及返回状态码

Android开发如何点击物理返回键返回上个界面