《实现数据库国际化的方法及装置、数据转换方法及系统.pdf》由会员分享,可在线阅读,更多相关《实现数据库国际化的方法及装置、数据转换方法及系统.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103699655 A (43)申请公布日 2014.04.02 CN 103699655 A (21)申请号 201310738035.0 (22)申请日 2013.12.27 G06F 17/30(2006.01) (71)申请人 福建星网视易信息系统有限公司 地址 350002 福建省福州市金山大道 618 号 橘园洲星网锐捷科技园 20#4 层 (72)发明人 陈伟力 游磊青 王跃宗 王玲 (74)专利代理机构 福州市鼓楼区博深专利代理 事务所 ( 普通合伙 ) 35214 代理人 林志峥 (54) 发明名称 实现数据库国际化的方法及装置、 数据转换 方法及系。
2、统 (57) 摘要 本发明公开一种实现数据库国际化的方法, 包括如下步骤 : S101、 将需要进行国际化的具体 语言写入数据库初始化配置文件 ; S102、 将初始 化配置文件中的原初始化 SQL 语句中的具体语言 用临时变量来代替得到初始化 SQL 脚本 ; S103、 生 成各种语言的对应语言包, 语言包中包含临时变 量与具体语言的映射关系, 然后采用摘要算法从 语言包中生成与临时变量对应的国际化变量, 并 在语言包中建立国际化变量与具体语言的映射关 系 ; S104、 根据初始化配置文件进行初始化, 将初 始化 SQL 脚本中的临时变量用国际化变量替换。 本发明还公开一种实现数据库国际。
3、化的装置、 数 据转换方法及系统。 (51)Int.Cl. 权利要求书 2 页 说明书 4 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书4页 附图3页 (10)申请公布号 CN 103699655 A CN 103699655 A 1/2 页 2 1. 一种实现数据库国际化的方法, 其特征在于, 包括如下步骤 : S101、 将需要进行国际化的具体语言写入数据库初始化配置文件, 初始化配置文件中 包含具有具体语言的原初始化 SQL 语句 ; S102、 将初始化配置文件中的原初始化 SQL 语句中的具体语言用临时变量来代替得到 初始化 S。
4、QL 脚本 ; S103、 生成各种语言的对应语言包, 语言包中包含临时变量与具体语言的映射关系, 然 后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语言包中建立国际化 变量与具体语言的映射关系 ; S104、 根据初始化配置文件进行初始化, 将初始化 SQL 脚本中的临时变量用国际化变 量替换。 2. 一种实现数据库国际化的装置, 其特征在于, 包括 : 写入模块, 用于将需要进行国际化的具体语言写入数据库初始化配置文件, 初始化配 置文件中包含具有具体语言的原初始化 SQL 语句 ; 脚本生成模块, 用于将初始化配置文件中的原初始化 SQL 语句中的具体语言用临时变 量来代。
5、替得到初始化 SQL 脚本 ; 语言包生成模块, 用于生成各种语言的对应语言包, 语言包中包含临时变量与具体语 言的映射关系, 然后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语 言包中建立国际化变量与具体语言的映射关系 ; 初始化模块, 用于根据初始化配置文件进行初始化, 将初始化 SQL 脚本中的临时变量 用国际化变量替换。 3. 一种基于国际化数据库的数据转换方法, 其特征在于, 包括如下步骤 : S201、 服务器端查询数据库读取所有语言包并将语言包在内存中进行缓存, 语言包中 包含国际化变量与具体语言的映射关系 ; S202、 当服务器端接收到浏览器端发送的获取数据请。
6、求时, 读取缓存的与浏览器端预 设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数 据 JSON 序列化后, 发送至所述浏览器端 ; S203、 浏览器端解析 JSON 序列得到数据。 4. 根据权利要求 3 所述的一种基于国际化数据库的数据转换方法, 其特征在于, 所述 数据包含数值、 布尔型、 字符串, 所述步骤 S2022 具体包括 : S2021、 当服务器端接收到浏览器端发送的获取数据请求时, 判断数据中的字段类型是 否为字符串, 若是, 进入步骤 S2022, S2022、 判断该字段是否为国际化变量, 若是, 进入步骤 S2023, 若否, 则直接。
7、将原字段返 回至所述浏览器端 ; S2023、 读取缓存的与浏览器端预设语言对应的语言包, 将数据中的国际化变量替换为 对应预设语言的具体语言, 同时将数据 JSON 序列化后, 发送至所述浏览器端。 5. 根据权利要求 3-4 任意一项所述的一种基于国际化数据库的数据转换方法, 其特征 在于, 还包括更新数据库步骤, 具体包括 : 在数据库操作前, 开启 AOP 切面编程方式的程序功能维护 ; 进行数据库操作时, 判断更新字段是否涉及国际化变量 ; 权 利 要 求 书 CN 103699655 A 2 2/2 页 3 当判定更新字段设计国际化变量时, 取消对包含国际化变量的字段的更新。 6.。
8、 一种基于国际化数据库的数据转换系统, 包括服务器端以及与服务器端通信连接的 浏览器端, 其特征在于, 所述服务器端包括 : 缓存模块, 用于查询数据库读取所有语言包并将语言包在内存中进行缓存, 语言包中 包含国际化变量与具体语言的映射关系 ; 替换模块, 用于当服务器端接收到浏览器端发送的获取数据请求时, 读取缓存的与浏 览器端预设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数据 JSON 序列化后, 发送至所述浏览器端 ; 所述浏览器端用于解析 JSON 序列得到数据。 7. 根据权利要求 6 所述的一种基于国际化数据库的数据转换系统, 其特征在于, 所述。
9、 数据包含数值、 布尔型、 字符串, 所述替换模块具体包括 : 第一判断子模块, 用于当服务器端接收到浏览器端发送的获取数据请求时, 判断数据 中的字段类型是否为字符串 ; 第二判断子模块, 用于当第一判断子模块判定是字符串时, 判断该字段是否为国际化 变量 ; 序列化子模块, 用于当第二判断子模块判断字段是国际化变量时, 读取缓存的与浏览 器端预设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同 时将数据 JSON 序列化后, 发送至所述浏览器端 ; 原字段返回子模块, 用于当第二判断子模块判断字段不是国际化变量时, 直接将原字 段内容返回至所述浏览器端。 8. 根。
10、据权利要求 6-7 任意一项所述的一种基于国际化数据库的数据转换系统, 其特征 在于, 还包括更新数据库模块, 具体包括 : AOP 执行子模块, 用于在数据库操作前, 开启 AOP 切面编程方式的程序功能维护 ; 第三判断子模块, 用于进行数据库操作时, 判断更新字段是否涉及国际化变量 ; 拦截子模块, 用于当第三判断子模块判定更新字段设计国际化变量时, 取消对包含国 际化变量的字段的更新。 权 利 要 求 书 CN 103699655 A 3 1/4 页 4 实现数据库国际化的方法及装置、 数据转换方法及系统 技术领域 0001 本发明涉及一种实现数据库国际化的方法及装置、 数据转换方法及。
11、系统。 背景技术 0002 现有的国际化数据库方案通常是通过将不同的语言进行分表或分字段来实现, 这 样的方式存在的问题有 : 0003 1、 同一系统在不同语言环境下显示所有数据就需要对所有的子表和子字段进行 查询才能得到 ; 0004 2、 数据表或字段增加造成操作和管理的复杂化 ; 0005 3、 增加新语言需要对与国际化相关的表增加新的子表或子字段来解决。 发明内容 0006 为解决上述拘束问题, 本发明采用的一个技术方案是 : 0007 提供一种实现数据库国际化的方法, 包括如下步骤 : S101、 将需要进行国际化的具 体语言写入数据库初始化配置文件, 初始化配置文件中包含具有具体。
12、语言的原初始化 SQL 语句 ; S102、 将初始化配置文件中的原初始化 SQL 语句中的具体语言用临时变量来代替得 到初始化 SQL 脚本 ; S103、 生成各种语言的对应语言包, 语言包中包含临时变量与具体语言 的映射关系, 然后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语言 包中建立国际化变量与具体语言的映射关系 ; S104、 根据初始化配置文件进行初始化, 将初 始化 SQL 脚本中的临时变量用国际化变量替换。 0008 本发明采用的另一个技术方案是 : 0009 提供一种实现数据库国际化的装置, 包括 : 写入模块, 用于将需要进行国际化的具 体语言写入数据库。
13、初始化配置文件, 初始化配置文件中包含具有具体语言的原初始化 SQL 语句 ; 脚本生成模块, 用于将初始化配置文件中的原初始化 SQL 语句中的具体语言用临时 变量来代替得到初始化 SQL 脚本 ; 语言包生成模块, 用于生成各种语言的对应语言包, 语言 包中包含临时变量与具体语言的映射关系, 然后采用摘要算法从语言包中生成与临时变量 对应的国际化变量, 并在语言包中建立国际化变量与具体语言的映射关系 ; 初始化模块, 用 于根据初始化配置文件进行初始化, 将初始化 SQL 脚本中的临时变量用国际化变量替换。 0010 本发明采用的再一个技术方案是 : 0011 提供一种基于国际化数据库的数。
14、据转换方法, 包括如下步骤 : S201、 服务器端查询 数据库读取所有语言包并将语言包在内存中进行缓存, 语言包中包含国际化变量与具体语 言的映射关系 ; S202、 当服务器端接收到浏览器端发送的获取数据请求时, 读取缓存的与浏 览器端预设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数据JSON序列化后, 发送至所述浏览器端 ; S203、 浏览器端解析JSON序列得到数据。 0012 本发明采用的再一个技术方案是 : 0013 提供一种基于国际化数据库的数据转换系统, 包括服务器端以及与服务器端通信 说 明 书 CN 103699655 A 4 2/4 。
15、页 5 连接的浏览器端, 所述服务器端包括 : 缓存模块, 用于查询数据库读取所有语言包并将语言 包在内存中进行缓存, 语言包中包含国际化变量与具体语言的映射关系 ; 替换模块, 用于当 服务器端接收到浏览器端发送的获取数据请求时, 读取缓存的与浏览器端预设语言对应的 语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数据 JSON 序列化 后, 发送至所述浏览器端 ; 所述浏览器端用于解析 JSON 序列得到数据。 0014 本发明的本发明的有益效果在于 : 提供一种实现数据库国际化的方法及装置、 数 据转换方法及系统, 在数据库中仅仅保存了国际化变量, 国际化操作在返回浏。
16、览器端 JSON 时进行处理, 因此国际化与数据库表结构无关, 在此转换过程中同时将数据中的国际化变 量替换为对应语言的内容, 转换的同时也进行了国际化, 因此替换过程不会产生大量新字 符串对象, 以保持高效率且不影响业务实现。 无需进行复杂的表结构维护, 增加和修改语言 时仅仅增加或修改语言包即可, 无需像现有技术的方案在数据库中为每个需要国际化的语 言增加每种语言的字段或为每种语言建立子表, 可扩展性好。 附图说明 0015 图 1 是本发明一实施方式中一种实现数据库国际化的方法的执行流程图 ; 0016 图 2 是本发明一实施方式中一种基于国际化数据库的数据转换方法的执行流程 图 ; 0。
17、017 图 3 是图 2 中步骤 S2022 的执行流程图 ; 0018 图 4 是更新数据库的执行流程图 ; 0019 图 5 是本发明一实施方式中一种实现数据库国际化的装置的功能模块图 ; 0020 图 6 是本发明一实施方式中一种基于国际化数据库的数据转换系统的系统框图。 具体实施方式 0021 为详细说明本发明的技术内容、 构造特征、 所实现目的及效果, 以下结合实施方式 并配合附图详予说明。 0022 请参阅图 1, 是本发明一实施方式中一种实现数据库国际化的方法的执行流程图, 包括如下步骤 : 0023 步骤 S101、 将需要进行国际化的具体语言写入数据库初始化配置文件, 初始化。
18、配 置文件中包含具有具体语言的原初始化 SQL 语句。 0024 步骤 S102、 将初始化配置文件中的原初始化 SQL 语句中的具体语言用临时变量来 代替得到初始化 SQL 脚本。 0025 例如 : 0026 insert into CONF(NAME,COMMENTS)values(license, 授权用户信息 ); 0027 其中具体语言 “授权用户信息” 用临时变量名 “$licenseinfo” 取代 : 0028 insert into CONF(NAME,COMMENTS)values(license,$licenseinfo)。 0029 步骤 S103、 生成各种语言的对。
19、应语言包, 语言包中包含临时变量与具体语言的映 射关系, 然后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语言包中 建立国际化变量与具体语言的映射关系。 0030 例如 : 说 明 书 CN 103699655 A 5 3/4 页 6 0031 英文 : licenseinfo=Licence Infomation 0032 中文 : licenseinfo= 授权用户信息 0033 繁体中文 : licenseinfo= 授權用戶信息 0034 步骤 S104、 根据初始化配置文件进行初始化, 将初始化 SQL 脚本中的临时变量用 国际化变量替换。 0035 请参阅图 2, 。
20、是本发明一实施方式中一种基于国际化数据库的数据转换方法的执 行流程图。该国际化数据库由上述实现方法开发得到。该基于国际化数据库的数据转换方 法具体包括如下步骤 : 0036 步骤 S201、 服务器端查询数据库读取所有语言包并将语言包在内存中进行缓存, 语言包中包含国际化变量与具体语言的映射关系 ; 0037 步骤 S202、 当服务器端接收到浏览器端发送的获取数据请求时, 读取缓存的与浏 览器端预设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数据 JSON 序列化后, 发送至所述浏览器端。由于国际化操作采用了缓存且在 JSON 序列化过程中完成, 国际化的效。
21、率较高。 0038 步骤 S203、 浏览器端解析 JSON 序列得到数据。 0039 请参阅图 3, 是图 2 中步骤 S2022 的执行流程图。其中, 所述数据包含数值、 布尔 型、 字符串, 所述步骤 S2022 具体包括 : 0040 步骤 S2021、 当服务器端接收到浏览器端发送的获取数据请求时, 判断数据中的字 段类型是否为字符串, 若是, 进入步骤 S2022, 0041 步骤 S2022、 判断该字段是否为国际化变量, 若是, 进入步骤 S2023, 若否, 则进入 步骤 S2024 直接将原字段返回至所述浏览器端 ; 0042 步骤 S2023、 读取缓存的与浏览器端预设语。
22、言对应的语言包, 将数据中的国际化变 量替换为对应预设语言的具体语言, 同时将数据 JSON 序列化后, 发送至所述浏览器端。 0043 请参阅图 4, 是更新数据库的执行流程图。其中, 所述的一种基于国际化数据库的 数据转换方法还包括更新数据库步骤, 具体包括 : 0044 步骤 S301、 在数据库操作前, 开启 AOP 切面编程方式的程序功能维护 ; 0045 步骤 S302、 进行数据库操作时, 判断更新字段是否涉及国际化变量 ; 0046 步骤 S303、 当判定更新字段设计国际化变量时, 取消对包含国际化变量的字段的 更新。 0047 由于采用了 AOP 方式来保护国际化变量不被修。
23、改, 此过程与业务分离, 统一地拦 截到数据库的更新操作, 阻止对含有国际化变量的字段的修改操作。 0048 请参阅图 5, 是本发明一实施方式中一种实现数据库国际化的装置的功能模块图。 所述一种实现数据库国际化的方法应用于该实现数据库国际化的装置中。 该实现数据库国 际化的装置包括写入模块、 脚本生成模块、 语言包生成模块、 初始化模块。 0049 写入模块用于将需要进行国际化的具体语言写入数据库初始化配置文件, 初始化 配置文件中包含具有具体语言的原初始化 SQL 语句。脚本生成模块用于将初始化配置文件 中的原初始化 SQL 语句中的具体语言用临时变量来代替得到初始化 SQL 脚本。语言包。
24、生成 模块用于生成各种语言的对应语言包, 语言包中包含临时变量与具体语言的映射关系, 然 后采用摘要算法从语言包中生成与临时变量对应的国际化变量, 并在语言包中建立国际化 说 明 书 CN 103699655 A 6 4/4 页 7 变量与具体语言的映射关系。初始化模块用于根据初始化配置文件进行初始化, 将初始化 SQL 脚本中的临时变量用国际化变量替换。 0050 请参阅图 6, 是本发明一实施方式中一种基于国际化数据库的数据转换系统的系 统框图。 所述的一种基于国际化数据库的数据转换方法应用于该基于国际化数据库的数据 转换系统中。 0051 该基于国际化数据库的数据转换系统包括服务器端以及。
25、与服务器端通信连接的 浏览器端, 所述服务器端包括数据库、 缓存模块、 替换模块。缓存模块用于查询数据库读取 所有语言包并将语言包在内存中进行缓存, 语言包中包含国际化变量与具体语言的映射关 系。替换模块用于当服务器端接收到浏览器端发送的获取数据请求时, 读取缓存的与浏览 器端预设语言对应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同 时将数据 JSON 序列化后, 发送至所述浏览器端。所述浏览器端用于解析 JSON 序列得到数 据。 0052 其中, 所述数据包含数值、 布尔型、 字符串, 所述替换模块具体包括第一判断子模 块、 第二判断子模块、 序列化子模块、 原字段返。
26、回子模块。第一判断子模块用于当服务器端 接收到浏览器端发送的获取数据请求时, 判断数据中的字段类型是否为字符串。第二判断 子模块用于当第一判断子模块判定是字符串时, 判断该字段是否为国际化变量。序列化子 模块用于当第二判断子模块判断字段是国际化变量时, 读取缓存的与浏览器端预设语言对 应的语言包, 将数据中的国际化变量替换为对应预设语言的具体语言, 同时将数据 JSON 序 列化后, 发送至所述浏览器端。原字段返回子模块用于当第二判断子模块判断字段不是国 际化变量时, 直接将原字段内容返回至所述浏览器端。 0053 其中, 所述的一种基于国际化数据库的数据转换系统还包括更新数据库模块, 该 更。
27、新数据库模块具体包括 AOP 执行子模块、 第三判断子模块、 拦截子模块。AOP 执行子模块 用于在数据库操作前, 开启 AOP 切面编程方式的程序功能维护。第三判断子模块用于进行 数据库操作时, 判断更新字段是否涉及国际化变量。拦截子模块用于当第三判断子模块判 定更新字段设计国际化变量时, 取消对包含国际化变量的字段的更新。 0054 本发明的实现数据库国际化的方法及装置、 数据转换方法及系统, 在数据库中仅 仅保存了国际化变量, 国际化操作在返回浏览器端 JSON 时进行处理, 因此国际化与数据库 表结构无关, 在此转换过程中同时将数据中的国际化变量替换为对应语言的内容, 转换的 同时也进。
28、行了国际化, 因此替换过程不会产生大量新字符串对象, 以保持高效率且不影响 业务实现。 无需进行复杂的表结构维护, 增加和修改语言时仅仅增加或修改语言包即可, 无 需像现有技术的方案在数据库中为每个需要国际化的语言增加每种语言的字段或为每种 语言建立子表, 可扩展性好。 0055 以上所述仅为本发明的实施例, 并非因此限制本发明的专利范围, 凡是利用本发 明说明书及附图内容所作的等效结构或等效流程变换, 或直接或间接运用在其他相关的技 术领域, 均同理包括在本发明的专利保护范围内。 说 明 书 CN 103699655 A 7 1/3 页 8 图 1 图 2 说 明 书 附 图 CN 103699655 A 8 2/3 页 9 图 3 说 明 书 附 图 CN 103699655 A 9 3/3 页 10 图 4 图 5 图 6 说 明 书 附 图 CN 103699655 A 10 。