首页> 中国专利> 实现数据库国际化的方法及装置、数据转换方法及系统

实现数据库国际化的方法及装置、数据转换方法及系统

摘要

本发明公开一种实现数据库国际化的方法,包括如下步骤:S101、将需要进行国际化的具体语言写入数据库初始化配置文件;S102、将初始化配置文件中的原初始化SQL语句中的具体语言用临时变量来代替得到初始化SQL脚本;S103、生成各种语言的对应语言包,语言包中包含临时变量与具体语言的映射关系,然后采用摘要算法从语言包中生成与临时变量对应的国际化变量,并在语言包中建立国际化变量与具体语言的映射关系;S104、根据初始化配置文件进行初始化,将初始化SQL脚本中的临时变量用国际化变量替换。本发明还公开一种实现数据库国际化的装置、数据转换方法及系统。

著录项

  • 公开/公告号CN103699655A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 福建星网视易信息系统有限公司;

    申请/专利号CN201310738035.0

  • 发明设计人 陈伟力;游磊青;王跃宗;王玲;

    申请日2013-12-27

  • 分类号G06F17/30(20060101);

  • 代理机构福州市鼓楼区博深专利代理事务所(普通合伙);

  • 代理人林志峥

  • 地址 350002 福建省福州市金山大道618号橘园洲星网锐捷科技园20#4层

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-04-30

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131227

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

本发明涉及一种实现数据库国际化的方法及装置、数据转换方法及系统。

背景技术

现有的国际化数据库方案通常是通过将不同的语言进行分表或分字段来实 现,这样的方式存在的问题有:

1、同一系统在不同语言环境下显示所有数据就需要对所有的子表和子字段 进行查询才能得到;

2、数据表或字段增加造成操作和管理的复杂化;

3、增加新语言需要对与国际化相关的表增加新的子表或子字段来解决。

发明内容

为解决上述拘束问题,本发明采用的一个技术方案是:

提供一种实现数据库国际化的方法,包括如下步骤:S101、将需要进行国 际化的具体语言写入数据库初始化配置文件,初始化配置文件中包含具有具体 语言的原初始化SQL语句;S102、将初始化配置文件中的原初始化SQL语句中 的具体语言用临时变量来代替得到初始化SQL脚本;S103、生成各种语言的对 应语言包,语言包中包含临时变量与具体语言的映射关系,然后采用摘要算法 从语言包中生成与临时变量对应的国际化变量,并在语言包中建立国际化变量 与具体语言的映射关系;S104、根据初始化配置文件进行初始化,将初始化SQL 脚本中的临时变量用国际化变量替换。

本发明采用的另一个技术方案是:

提供一种实现数据库国际化的装置,包括:写入模块,用于将需要进行国 际化的具体语言写入数据库初始化配置文件,初始化配置文件中包含具有具体 语言的原初始化SQL语句;脚本生成模块,用于将初始化配置文件中的原初始 化SQL语句中的具体语言用临时变量来代替得到初始化SQL脚本;语言包生成 模块,用于生成各种语言的对应语言包,语言包中包含临时变量与具体语言的 映射关系,然后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语言包中建立国际化变量与具体语言的映射关系;初始化模块,用于根据 初始化配置文件进行初始化,将初始化SQL脚本中的临时变量用国际化变量替 换。

本发明采用的再一个技术方案是:

提供一种基于国际化数据库的数据转换方法,包括如下步骤:S201、服务 器端查询数据库读取所有语言包并将语言包在内存中进行缓存,语言包中包含 国际化变量与具体语言的映射关系;S202、当服务器端接收到浏览器端发送的 获取数据请求时,读取缓存的与浏览器端预设语言对应的语言包,将数据中的 国际化变量替换为对应预设语言的具体语言,同时将数据JSON序列化后,发送 至所述浏览器端;S203、浏览器端解析JSON序列得到数据。

本发明采用的再一个技术方案是:

提供一种基于国际化数据库的数据转换系统,包括服务器端以及与服务器 端通信连接的浏览器端,所述服务器端包括:缓存模块,用于查询数据库读取 所有语言包并将语言包在内存中进行缓存,语言包中包含国际化变量与具体语 言的映射关系;替换模块,用于当服务器端接收到浏览器端发送的获取数据请 求时,读取缓存的与浏览器端预设语言对应的语言包,将数据中的国际化变量 替换为对应预设语言的具体语言,同时将数据JSON序列化后,发送至所述浏览 器端;所述浏览器端用于解析JSON序列得到数据。

本发明的本发明的有益效果在于:提供一种实现数据库国际化的方法及装 置、数据转换方法及系统,在数据库中仅仅保存了国际化变量,国际化操作在 返回浏览器端JSON时进行处理,因此国际化与数据库表结构无关,在此转换过 程中同时将数据中的国际化变量替换为对应语言的内容,转换的同时也进行了 国际化,因此替换过程不会产生大量新字符串对象,以保持高效率且不影响业 务实现。无需进行复杂的表结构维护,增加和修改语言时仅仅增加或修改语言 包即可,无需像现有技术的方案在数据库中为每个需要国际化的语言增加每种 语言的字段或为每种语言建立子表,可扩展性好。

附图说明

图1是本发明一实施方式中一种实现数据库国际化的方法的执行流程图;

图2是本发明一实施方式中一种基于国际化数据库的数据转换方法的执行 流程图;

图3是图2中步骤S2022的执行流程图;

图4是更新数据库的执行流程图;

图5是本发明一实施方式中一种实现数据库国际化的装置的功能模块图;

图6是本发明一实施方式中一种基于国际化数据库的数据转换系统的系统 框图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合 实施方式并配合附图详予说明。

请参阅图1,是本发明一实施方式中一种实现数据库国际化的方法的执行流 程图,包括如下步骤:

步骤S101、将需要进行国际化的具体语言写入数据库初始化配置文件,初 始化配置文件中包含具有具体语言的原初始化SQL语句。

步骤S102、将初始化配置文件中的原初始化SQL语句中的具体语言用临时 变量来代替得到初始化SQL脚本。

例如:

insert into CONF(NAME,COMMENTS)values('license','授权用户信息');

其中具体语言“授权用户信息”用临时变量名“${licenseinfo}”取代:

insert into CONF(NAME,COMMENTS)values('license','${licenseinfo}')。

步骤S103、生成各种语言的对应语言包,语言包中包含临时变量与具体语 言的映射关系,然后采用摘要算法从语言包中生成与临时变量对应的国际化变 量,并在语言包中建立国际化变量与具体语言的映射关系。

例如:

英文:licenseinfo=Licence Infomation

中文:licenseinfo=授权用户信息

繁体中文:licenseinfo=授權用戶信息

步骤S104、根据初始化配置文件进行初始化,将初始化SQL脚本中的临时 变量用国际化变量替换。

请参阅图2,是本发明一实施方式中一种基于国际化数据库的数据转换方法 的执行流程图。该国际化数据库由上述实现方法开发得到。该基于国际化数据 库的数据转换方法具体包括如下步骤:

步骤S201、服务器端查询数据库读取所有语言包并将语言包在内存中进行 缓存,语言包中包含国际化变量与具体语言的映射关系;

步骤S202、当服务器端接收到浏览器端发送的获取数据请求时,读取缓存 的与浏览器端预设语言对应的语言包,将数据中的国际化变量替换为对应预设 语言的具体语言,同时将数据JSON序列化后,发送至所述浏览器端。由于国际 化操作采用了缓存且在JSON序列化过程中完成,国际化的效率较高。

步骤S203、浏览器端解析JSON序列得到数据。

请参阅图3,是图2中步骤S2022的执行流程图。其中,所述数据包含数值、 布尔型、字符串,所述步骤S2022具体包括:

步骤S2021、当服务器端接收到浏览器端发送的获取数据请求时,判断数据 中的字段类型是否为字符串,若是,进入步骤S2022,

步骤S2022、判断该字段是否为国际化变量,若是,进入步骤S2023,若否, 则进入步骤S2024直接将原字段返回至所述浏览器端;

步骤S2023、读取缓存的与浏览器端预设语言对应的语言包,将数据中的国 际化变量替换为对应预设语言的具体语言,同时将数据JSON序列化后,发送至 所述浏览器端。

请参阅图4,是更新数据库的执行流程图。其中,所述的一种基于国际化数 据库的数据转换方法还包括更新数据库步骤,具体包括:

步骤S301、在数据库操作前,开启AOP切面编程方式的程序功能维护;

步骤S302、进行数据库操作时,判断更新字段是否涉及国际化变量;

步骤S303、当判定更新字段设计国际化变量时,取消对包含国际化变量的 字段的更新。

由于采用了AOP方式来保护国际化变量不被修改,此过程与业务分离,统 一地拦截到数据库的更新操作,阻止对含有国际化变量的字段的修改操作。

请参阅图5,是本发明一实施方式中一种实现数据库国际化的装置的功能模 块图。所述一种实现数据库国际化的方法应用于该实现数据库国际化的装置中。 该实现数据库国际化的装置包括写入模块、脚本生成模块、语言包生成模块、 初始化模块。

写入模块用于将需要进行国际化的具体语言写入数据库初始化配置文件, 初始化配置文件中包含具有具体语言的原初始化SQL语句。脚本生成模块用于 将初始化配置文件中的原初始化SQL语句中的具体语言用临时变量来代替得到 初始化SQL脚本。语言包生成模块用于生成各种语言的对应语言包,语言包中 包含临时变量与具体语言的映射关系,然后采用摘要算法从语言包中生成与临 时变量对应的国际化变量,并在语言包中建立国际化变量与具体语言的映射关 系。初始化模块用于根据初始化配置文件进行初始化,将初始化SQL脚本中的 临时变量用国际化变量替换。

请参阅图6,是本发明一实施方式中一种基于国际化数据库的数据转换系统 的系统框图。所述的一种基于国际化数据库的数据转换方法应用于该基于国际 化数据库的数据转换系统中。

该基于国际化数据库的数据转换系统包括服务器端以及与服务器端通信连 接的浏览器端,所述服务器端包括数据库、缓存模块、替换模块。缓存模块用 于查询数据库读取所有语言包并将语言包在内存中进行缓存,语言包中包含国 际化变量与具体语言的映射关系。替换模块用于当服务器端接收到浏览器端发 送的获取数据请求时,读取缓存的与浏览器端预设语言对应的语言包,将数据 中的国际化变量替换为对应预设语言的具体语言,同时将数据JSON序列化后, 发送至所述浏览器端。所述浏览器端用于解析JSON序列得到数据。

其中,所述数据包含数值、布尔型、字符串,所述替换模块具体包括第一 判断子模块、第二判断子模块、序列化子模块、原字段返回子模块。第一判断 子模块用于当服务器端接收到浏览器端发送的获取数据请求时,判断数据中的 字段类型是否为字符串。第二判断子模块用于当第一判断子模块判定是字符串 时,判断该字段是否为国际化变量。序列化子模块用于当第二判断子模块判断 字段是国际化变量时,读取缓存的与浏览器端预设语言对应的语言包,将数据 中的国际化变量替换为对应预设语言的具体语言,同时将数据JSON序列化后, 发送至所述浏览器端。原字段返回子模块用于当第二判断子模块判断字段不是 国际化变量时,直接将原字段内容返回至所述浏览器端。

其中,所述的一种基于国际化数据库的数据转换系统还包括更新数据库模 块,该更新数据库模块具体包括AOP执行子模块、第三判断子模块、拦截子模 块。AOP执行子模块用于在数据库操作前,开启AOP切面编程方式的程序功能 维护。第三判断子模块用于进行数据库操作时,判断更新字段是否涉及国际化 变量。拦截子模块用于当第三判断子模块判定更新字段设计国际化变量时,取 消对包含国际化变量的字段的更新。

本发明的实现数据库国际化的方法及装置、数据转换方法及系统,在数据 库中仅仅保存了国际化变量,国际化操作在返回浏览器端JSON时进行处理,因 此国际化与数据库表结构无关,在此转换过程中同时将数据中的国际化变量替 换为对应语言的内容,转换的同时也进行了国际化,因此替换过程不会产生大 量新字符串对象,以保持高效率且不影响业务实现。无需进行复杂的表结构维 护,增加和修改语言时仅仅增加或修改语言包即可,无需像现有技术的方案在 数据库中为每个需要国际化的语言增加每种语言的字段或为每种语言建立子 表,可扩展性好。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利 用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运 用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号