Java 关于access数据库中空白字段的犹豫

Java 关于access数据库中空白字段的犹豫,java,ms-access,ms-access-2010,Java,Ms Access,Ms Access 2010,我正试图从Microsoft Access中以*.accdb格式从数据库中获取一些值。我正在编写一个Java程序,使用适当的jdbc驱动程序从Access数据库获取值 问题是: SELECT * FROM table_name 我能够检索我需要的所有值,我对此没有问题。当我将结果转换为Java中的字符串时,当我看到文件中的一些(显然,但我很确定它们是)空字段被检索为文本数据类型列的“null”或“”(空字符串)时,问题就出现了 我分析了数据库,寻找每个列的默认值等。。但我没有找到为空单元格检索

我正试图从Microsoft Access中以*.accdb格式从数据库中获取一些值。我正在编写一个Java程序,使用适当的jdbc驱动程序从Access数据库获取值

问题是:

SELECT * FROM table_name
我能够检索我需要的所有值,我对此没有问题。当我将结果转换为Java中的字符串时,当我看到文件中的一些(显然,但我很确定它们是)空字段被检索为文本数据类型列的“null”或“”(空字符串)时,问题就出现了

我分析了数据库,寻找每个列的默认值等。。但我没有找到为空单元格检索null或“”的逻辑原因。根据office支持页面:

当字段不包含值时,它包含空值,对于文本、备注或超链接字段,它包含空值或零长度字符串


然后,我发现两种类型都可以返回空字段,但我仍然无法理解标准

我发现在MSSQL数据库中,它取决于值的输入方式

如果您有这样一个表(asuming als cols是字符串):

现在,您可以像这样在中插入数据:

INSERT INTO tbl1 (col1)
VALUES ('Test')
您可能会得到:

col1: Test
col2: Null
Col3: Null
但是如果您插入了这样的数据(例如,您没有检查col2中的值是否为“”)

您将获得:

col1: Test
col2: ""
Col3: ""

这主要是通过插入用户填写的数据而不是整个数据来实现的。

通常,我会在我的SELECT中写入每一列,在MSSQL服务器中,如果db条目是使用例如插入到“表”(1)值(“”)中的db条目写入的,则会从第1列获得一个“”(空字符串),从第2列获得一个
Null
所以我想,当我从空白字段中得到一个null或en空字符串时,是因为这取决于用户如何输入值?不完全是。。。这取决于写入数据库的软件是如何设计的。如果它检查值是否为“”,并且没有将
Null
更改为“”,则会得到
Null
。好的,那么您的答案是,根据软件写入DB的方式以及它处理和写入空值的方式,将返回一种或另一种类型。可能是吗?是的…我写了一篇关于如何模拟的帖子。(在MSSQL中为我工作)好的,只要我从办公室支持部门得到一个小答案,我就会把它作为正确答案写下来。如果这是对的,我会把它标的正确,因为你应得的!如果office support声明了其他内容,请随时纠正我。谢谢你,我添加了解释,但从技术上讲(用疑问词)它和你说的差不多。恭喜。
INSERT INTO tbl1 (col1, col2, col3)
VALUES ('Test', '', '')
col1: Test
col2: ""
Col3: ""