在查询数据库时,为什么返回的值与它们所放置的相同的准确Java类型不一样?即为什么数据库查询结果通常不是类型安全的?
答案 0 :(得分:2)
您所说的只是更大问题的一部分:对象关系impedance mismatch 。
简短的回答是,并不总是可以将数据库类型安全地转换为相应的Java类型。例如,甚至整数类型规范在编程语言和数据库之间并不总是匹配(例如,应该是int
32位还是64位?签名或未签名?)。字符串(ASCII或Unicode?)也是如此。正如@Marc B已经提到的那样,如果有更复杂的数据类型,例如date
,事情会变得更糟。