有一个新手问题。应该在哪里处理空值,以便最终用户看不到它们。假设您有一些属性,并且这些属性有一个 OPENDATE。数据库中 OPENDATE 的某些值当前可能为空。从应用程序的角度来看,我会在这个特定实例中向最终用户呈现一个空字符串。你会用查询来处理这个问题,还是在应用程序方面假设你有一个java web应用程序?
数据库:
SELECT NVL(TO_CHAR(OPENDATE), ' ') from table
或
java:
if(str.equalsIgnoreCase("null")
//render empty string
最佳答案
您应该在 View 层*(例如 JSP)中处理它
如果要表示“该值尚未设置”,您的业务逻辑(域对象)应包含 NULL 值。
向用户显示空字符串特定于显示设备和上下文。
* View 层也可能意味着您的 View Controller 逻辑,您可以在其中准备用于在 JSP 上显示数据的支持 bean。
重要的是,您可以在需要时区分 NULL 值(未设置值)和空字符串(已设置值,但它是一个空字符串)。例如,如果用户尚未设置值,您可能希望切换某些数据元素的 HTML 显示。
为了具体解决您的问题,您的 Domain Model 中 Date
字段的值可能是空白 String
没有意义。 。一个好的经验法则是在程序流程中尽可能长时间地保持数据正确键入
(即您的 Value objects )。
关于java - 处理数据库或应用程序上的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549773/