Java 为什么不';t数据库查询的结果通常是类型安全的?

Java 为什么不';t数据库查询的结果通常是类型安全的?,java,oracle,Java,Oracle,查询数据库时,为什么返回的值与放入的Java类型不一样?i、 e.为什么数据库查询结果通常不是类型安全的?您所说的只是一个更大问题的一部分:对象关系型的 简单的回答是,并非总是能够安全地将数据库类型转换为相应的Java类型。例如,即使是整数类型的规范在编程语言和数据库之间也不总是匹配(比如,应该是int32位还是64位?有符号还是无符号?)。字符串(ASCII或Unicode?)也是如此。正如Marc B已经提到的,在更复杂的数据类型如日期>代码>情况下,情况会变得更糟。你能提供一个例子吗?我假

查询数据库时,为什么返回的值与放入的Java类型不一样?i、 e.为什么数据库查询结果通常不是类型安全的?

您所说的只是一个更大问题的一部分:对象关系型的


简单的回答是,并非总是能够安全地将数据库类型转换为相应的Java类型。例如,即使是整数类型的规范在编程语言和数据库之间也不总是匹配(比如,应该是
int
32位还是64位?有符号还是无符号?)。字符串(ASCII或Unicode?)也是如此。正如Marc B已经提到的,在更复杂的数据类型如日期>代码>情况下,情况会变得更糟。

你能提供一个例子吗?我假设数据库的API不能在编译时推断出查询结果的预期java类型。有一个java日期,然后是数据库日期。可能DB日期的有效日期允许范围较小。e、 java多年来一直在执行-999999到+999999的操作,而db只执行1970->2038。因为数据库不是用java编写的,或者不是为java设计的?