Java JDBC getColumns之间的差异;是“可为空的”;及;“可为空”;
我试图提取JDBC数据库驱动程序的数据库元数据 现在我面对的是我无法向自己解释的部分文件: 方法Java JDBC getColumns之间的差异;是“可为空的”;及;“可为空”;,java,jdbc,Java,Jdbc,我试图提取JDBC数据库驱动程序的数据库元数据 现在我面对的是我无法向自己解释的部分文件: 方法DatabaseMetaData.getColumns(…)()说明了两个不同的“nullability”列: 允许为NULL的int=>为NULL。 columnNoNulls-可能不允许空值 columnNullable-绝对允许空值 columnNullableUnknown-NullableUnknown 及 IS_NULLABLE String=>ISO规则用于确定列的可空性。 是---如果
DatabaseMetaData.getColumns(…)代码>()说明了两个不同的“nullability”列:
允许为NULL的int=>为NULL。
columnNoNulls-可能不允许空值
columnNullable-绝对允许空值
columnNullableUnknown-NullableUnknown
及
IS_NULLABLE String=>ISO规则用于确定列的可空性。
是---如果列可以包含空值
否---如果列不能包含空值
空字符串---如果列的可空性未知
我能想到的两个不同专栏的唯一想法是:
其中一个定义的表列在读取时可以为null,而另一个定义的表列可以插入null。但我无法确定这个想法的正确性
有人确切知道这两列之间的区别吗?
关于JDBCAPI的这一部分有更详细的信息吗
谢谢您的帮助。据我所知,其含义是相同的,但是可以为空
遵循信息模式。列
查看来自SQL:2011模式(ISO-9075-11:2011)的定义,尽管SQL:2011没有指定空字符串的含义(对于所有其他情况,它仅指定NO
,如果不可为null,则指定YES
。nullable
列使用常量columnnoulls
,columnNullable
和columnNullableUnknown
的值,这些值可能用于可读性更强的代码,也可用于开关
(之前的Java 7不支持字符串),它也相当于的返回值
通常,元数据结果集的定义基于ISO-9075-11:2011(SQL:2011模式)中定义的信息\u模式
表和视图或SQL标准的其他版本。此规范可用于获取有关列的更多信息,但JDBC特定的添加除外。除了javadoc中的内容(以及通过读取apidoc和规范的其他部分中的行之间的内容)外,这些添加通常是未明确指定的,尽管这些添加通常遵循SQL标准的规则和逻辑
NULLABLE int => is NULL allowed.
columnNoNulls - might not allow NULL values
columnNullable - definitely allows NULL values
columnNullableUnknown - nullability unknown
IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
YES --- if the column can include NULLs
NO --- if the column cannot include NULLs
empty string --- if the nullability for the column is unknown