数据库数据转换中文的这个问题困扰了很久,一致都没有一个自己满意的答案

2018-07-10 14:32:21 +08:00
 st78even

举例: 个人信息表,性别( gender )这个字段 0 或者 1, 0 代表男,1 代表女

POJO 类

class Person {
  private String name;
  private Integer gender;
... 省略 set/get 方法
} 

新增的时候通过 html select 方式很容易的实现保存。现在我的问题来了,在页面中需要 显示 性别的时候,需要把 数据库中保存的 0 或者 1 转义成

这个转义的过程我现在发现有三种方式(有大拿可以分享一下其他的方式):

  1. 是在 view 中类似 jsp 中进行值转换
  2. 数据库中建一个 字典,再写一个字典类,根据 字典的 key 值和 value 值转换中文
  3. 新增一个 PersonVO 类
class PersonVO extends Person {
  private String genderName;     // 这个是新增的性别转换类
  // 增加 get 方法
  public String getGenderName() {
    return this.gender.equals(new Integer("0")) ? "男":"女";
  }
}

以上的方法 :

上述问题不知道是否描述清楚了,请各位大佬给讨论分析一下。

3334 次点击
所在节点    Java
25 条回复
ETiV
2018-07-10 16:25:19 +08:00
让我想到了 Java 架构师的那个段子……
st78even
2018-07-10 17:02:10 +08:00
@ETiV 你说什么段子?才疏学浅
st78even
2018-07-10 17:04:35 +08:00
@xud6 i18n 指的不是国际化的东西吗?具体是什么框架,贴个地址呗
xud6
2018-07-10 20:04:22 +08:00
@st78even 这个不是要看前端怎么搞的吗?不同的前端 /前端框架 /语言有不同的库。
如果是传统的 spring 服务器生成页面可以看看这种 https://www.journaldev.com/2610/spring-mvc-internationalization-i18n-and-localization-l10n-example (我不怎么搞 JAVA,所以只是 google 随便搜的)

同样的时间,与其花费在造轮子不如直接引入 i18n,同样可以实现服务器信息格式到用户本地语言的转换。
someonedeng
2018-07-11 01:08:56 +08:00
一开始就在数据库存 ‘男’

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/469587

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX