有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在数据库应用程序中最好地处理多种语言?

我有一系列属性文件,用于以各种语言显示消息
因此,根据当前的语言设置,信息可以以英语、法语或德语等语言显示。
在我的数据库中,我有各种各样的记录,而不是实际的值,我把属性文件的键放进了数据库中,这样在使用该数据检索记录时,我可以用相应的语言显示消息
例如,我的数据库中可能有这样一条记录:

John| Smith| AQ| etc

其中,相应属性文件中的AQ可以显示为DoctorArzt等。
我的问题是,我需要根据这些属性进行偶然排序,虽然这些属性在数据库中的值是代码,但在数据库中排序是不可能的
here我得到了使用临时表和排序的建议,但对于1属性来说,这对我来说很好
我正在寻找一种更通用的解决方案来处理多个属性文件,并尽可能避免代码中的检查:
e、 g.if this query sorts on X create this temp table
有没有一个通用的解决方案


共 (2) 个答案

  1. # 1 楼答案

    在应用程序启动时,可以同步包含键、区域设置和实际消息的表。这些将是普通的表,因此您可以在普通的SQL查询中访问它们

    但我建议您在应用程序中始终进行您描述的排序,因为这看起来很像应用程序逻辑

  2. # 2 楼答案

    与其将语言信息存储在属性文件中,不如将其存储在数据库的表中。然后一切都可以很容易地完成

    Records:
    first | last  | messageid |
    John  | Smith | 1         |
    
    Messages:
    messageid | language | message |
    1         | English  | Mr.     |
    1         | Spanish  | Sr.     |
    2         | English  | Doctor  |
    etc...
    

    然后,用本地语言按消息进行的查询排序如下:

    select first, last, message from records r
        inner join messages m on m.messageid = r.messageid
        where language = [your current language]
        order by message