【发布时间】:2012-02-28 18:11:40
【问题描述】:
当我从 ResultSet 创建域对象的实例时,我是否应该将 null 字符串转换为空字符串。反之,写入数据库时是否应该将空字符串转换为空字符串?
这里的最佳做法是什么?还是仅仅依赖于应用程序?
非常感谢。
【问题讨论】:
标签: java jdbc marshalling unmarshalling
当我从 ResultSet 创建域对象的实例时,我是否应该将 null 字符串转换为空字符串。反之,写入数据库时是否应该将空字符串转换为空字符串?
这里的最佳做法是什么?还是仅仅依赖于应用程序?
非常感谢。
【问题讨论】:
标签: java jdbc marshalling unmarshalling
空字符串"" 和其他字符串一样。对我来说,将"" 存储为NULL 与将"" 存储为'' 并将"abc" 存储为NULL 一样有意义。
所以,保持简单:将"" 存储为'',并将null 引用存储为NULL。
NULL值的概念对于 SQL 新手来说是一个常见的混淆来源,他们经常认为NULL与空字符串''是一回事。 p>
【讨论】:
IMO,您应该将空值保留为空值。根据您的数据库架构,空字符串和 null 是两个不同的值。如果您将这些值混为一谈,您的代码可能会产生意想不到的结果——特别是如果您有多个开发人员在同一个代码库上工作。您可能必须在下游代码中考虑这两种情况,但这很可能会更清晰、更易于维护/测试。
【讨论】: