当我从ResultSet创建域对象的实例时,我应该将null为空的字符串转换为空字符串。相反,在写入数据库时应该将空字符串转换为空字符串吗?
这里的最佳做法是什么?或者它只是依赖于应用程序?
非常感谢。
答案 0 :(得分:2)
空字符串""
是一个字符串,就像其他字符串一样。对我而言,将""
存储为NULL
与将""
存储为''
并将"abc"
存储为NULL
一样有意义。
所以,保持简单:将""
存储为''
,并将null
引用存储为NULL
。
NULL
值的概念是SQL新手的常见混淆源,他们常常认为NULL
与空字符串''
是一样的。
答案 1 :(得分:2)
IMO,你应该将空值保留为空值。根据您的数据库架构,空字符串和null是两个不同的值。如果您混淆这些值,您的代码可能会产生意外的结果 - 特别是如果您有多个开发人员在相同的代码库上工作。您可能必须在下游代码中考虑这两种情况,但这很可能更清晰,更易于维护/可测试。