java - 处理数据库或应用程序上的空值?

标签 java database model-view-controller

有一个新手问题。应该在哪里处理空值,以便最终用户看不到它们。假设您有一些属性,并且这些属性有一个 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 ModelDate 字段的值可能是空白 String 没有意义。 。一个好的经验法则是在程序流程中尽可能长时间地保持数据正确键入(即您的 Value objects )。

关于java - 处理数据库或应用程序上的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549773/

相关文章:

python - 如何将 for 循环中的每个迭代分配给数据库存储的变量

database - laravel-5.4 如何存储storage\app\public 的图片路径

java - 保存时文件命名重复

model-view-controller - MVC 的最佳定义是什么?

java - 如何在android中获取月份和日期?

java - 为什么要刷新 CharsetDecoder?

java - 将java连接到mysql域服务器

java - 如何在 Spring 中查看 SOAP 请求的 XML 输出?

java - 使用什么 wtpversion 值?

java - 根据字符串是否为空创建Guava的Optional的简洁方法