實現資料庫國際化的方法及裝置、數據轉換方法及系統的製作方法
2023-05-17 13:03:41 1
實現資料庫國際化的方法及裝置、數據轉換方法及系統的製作方法
【專利摘要】本發明公開一種實現資料庫國際化的方法,包括如下步驟:S101、將需要進行國際化的具體語言寫入資料庫初始化配置文件;S102、將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本;S103、生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係;S104、根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。本發明還公開一種實現資料庫國際化的裝置、數據轉換方法及系統。
【專利說明】實現資料庫國際化的方法及裝置、數據轉換方法及系統
【技術領域】
[0001]本發明涉及一種實現資料庫國際化的方法及裝置、數據轉換方法及系統。
【背景技術】
[0002]現有的國際化資料庫方案通常是通過將不同的語言進行分表或分欄位來實現,這樣的方式存在的問題有:
[0003]1、同一系統在不同語言環境下顯示所有數據就需要對所有的子表和子欄位進行查詢才能得到;
[0004]2、數據表或欄位增加造成操作和管理的複雜化;
[0005]3、增加新語言需要對與國際化相關的表增加新的子表或子欄位來解決。
【發明內容】
[0006]為解決上述拘束問題,本發明採用的一個技術方案是:
[0007]提供一種實現資料庫國際化的方法,包括如下步驟:S101、將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句;S102、將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本;S103、生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係;S104、根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。
[0008]本發明採用的另一個技術方案是:
[0009]提供一種實現資料庫國際化的裝置,包括:寫入模塊,用於將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句;腳本生成模塊,用於將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本;語言包生成模塊,用於生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係;初始化模塊,用於根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。
[0010]本發明採用的再一個技術方案是:
[0011]提供一種基於國際化資料庫的數據轉換方法,包括如下步驟:S201、伺服器端查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係;S202、當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端;S203、瀏覽器端解析JSON序列得到數據。
[0012]本發明採用的再一個技術方案是:
[0013]提供一種基於國際化資料庫的數據轉換系統,包括伺服器端以及與伺服器端通信連接的瀏覽器端,所述伺服器端包括:緩存模塊,用於查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係;替換模塊,用於當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端;所述瀏覽器端用於解析JSON序列得到數據。
[0014]本發明的本發明的有益效果在於:提供一種實現資料庫國際化的方法及裝置、數據轉換方法及系統,在資料庫中僅僅保存了國際化變量,國際化操作在返回瀏覽器端JSON時進行處理,因此國際化與資料庫表結構無關,在此轉換過程中同時將數據中的國際化變量替換為對應語言的內容,轉換的同時也進行了國際化,因此替換過程不會產生大量新字符串對象,以保持高效率且不影響業務實現。無需進行複雜的表結構維護,增加和修改語言時僅僅增加或修改語言包即可,無需像現有技術的方案在資料庫中為每個需要國際化的語言增加每種語言的欄位或為每種語言建立子表,可擴展性好。
【專利附圖】
【附圖說明】
[0015]圖1是本發明一實施方式中一種實現資料庫國際化的方法的執行流程圖;
[0016]圖2是本發明一實施方式中一種基於國際化資料庫的數據轉換方法的執行流程圖;
[0017]圖3是圖2中步驟S2022的執行流程圖;
[0018]圖4是更新資料庫的執行流程圖;
[0019]圖5是本發明一實施方式中一種實現資料庫國際化的裝置的功能模塊圖;
[0020]圖6是本發明一實施方式中一種基於國際化資料庫的數據轉換系統的系統框圖。
【具體實施方式】
[0021]為詳細說明本發明的技術內容、構造特徵、所實現目的及效果,以下結合實施方式並配合附圖詳予說明。
[0022]請參閱圖1,是本發明一實施方式中一種實現資料庫國際化的方法的執行流程圖,包括如下步驟:
[0023]步驟S101、將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句。
[0024]步驟S102、將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本。
[0025]例如:
[0026]insert into CONF (NAME, COMMENTS) values (』license』,』 授權用戶信息』);
[0027]其中具體語言「授權用戶信息」用臨時變量名「${licenSeinf0} 」取代:
[0028]insert into CONF (NAME, COMMENTS) values (,license,,,$ {Iicenseinfo},)。
[0029]步驟S103、生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係。
[0030]例如:[0031]英文:Iicenseinfo=Licence Infomation
[0032]中文:licenseinfo=授權用戶信息
[0033]繁體中文:licenseinfo=授權用戶信息
[0034]步驟S104、根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用
國際化變量替換。
[0035]請參閱圖2,是本發明一實施方式中一種基於國際化資料庫的數據轉換方法的執行流程圖。該國際化資料庫由上述實現方法開發得到。該基於國際化資料庫的數據轉換方法具體包括如下步驟:
[0036]步驟S201、伺服器端查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係;
[0037]步驟S202、當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端。由於國際化操作採用了緩存且在JSON序列化過程中完成,國際化的效率較高。
[0038]步驟S203、瀏覽器端解析JSON序列得到數據。
[0039]請參閱圖3,是圖2中步驟S2022的執行流程圖。其中,所述數據包含數值、布爾型、字符串,所述步驟S2022具體包括:
[0040]步驟S2021、當伺服器端接收到瀏覽器端發送的獲取數據請求時,判斷數據中的欄位類型是否為字符串,若是,進入步驟S2022,
[0041]步驟S2022、判斷該欄位是否為國際化變量,若是,進入步驟S2023,若否,則進入步驟S2024直接將原欄位返回至所述瀏覽器端;
[0042]步驟S2023、讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端。
[0043]請參閱圖4,是更新資料庫的執行流程圖。其中,所述的一種基於國際化資料庫的數據轉換方法還包括更新資料庫步驟,具體包括:
[0044]步驟S301、在資料庫操作前,開啟AOP切面編程方式的程序功能維護;
[0045]步驟S302、進行資料庫操作時,判斷更新欄位是否涉及國際化變量;
[0046]步驟S303、當判定更新欄位設計國際化變量時,取消對包含國際化變量的欄位的更新。
[0047]由於採用了 AOP方式來保護國際化變量不被修改,此過程與業務分離,統一地攔截到資料庫的更新操作,阻止對含有國際化變量的欄位的修改操作。
[0048]請參閱圖5,是本發明一實施方式中一種實現資料庫國際化的裝置的功能模塊圖。所述一種實現資料庫國際化的方法應用於該實現資料庫國際化的裝置中。該實現資料庫國際化的裝置包括寫入模塊、腳本生成模塊、語言包生成模塊、初始化模塊。
[0049]寫入模塊用於將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句。腳本生成模塊用於將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本。語言包生成模塊用於生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係。初始化模塊用於根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。
[0050]請參閱圖6,是本發明一實施方式中一種基於國際化資料庫的數據轉換系統的系統框圖。所述的一種基於國際化資料庫的數據轉換方法應用於該基於國際化資料庫的數據轉換系統中。
[0051]該基於國際化資料庫的數據轉換系統包括伺服器端以及與伺服器端通信連接的瀏覽器端,所述伺服器端包括資料庫、緩存模塊、替換模塊。緩存模塊用於查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係。替換模塊用於當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端。所述瀏覽器端用於解析JSON序列得到數據。
[0052]其中,所述數據包含數值、布爾型、字符串,所述替換模塊具體包括第一判斷子模塊、第二判斷子模塊、序列化子模塊、原欄位返回子模塊。第一判斷子模塊用於當伺服器端接收到瀏覽器端發送的獲取數據請求時,判斷數據中的欄位類型是否為字符串。第二判斷子模塊用於當第一判斷子模塊判定是字符串時,判斷該欄位是否為國際化變量。序列化子模塊用於當第二判斷子模塊判斷欄位是國際化變量時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端。原欄位返回子模塊用於當第二判斷子模塊判斷欄位不是國際化變量時,直接將原欄位內容返回至所述瀏覽器端。
[0053]其中,所述的一種基於國際化資料庫的數據轉換系統還包括更新資料庫模塊,該更新資料庫模塊具體包括AOP執行子模塊、第三判斷子模塊、攔截子模塊。AOP執行子模塊用於在資料庫操作前,開啟AOP切面編程方式的程序功能維護。第三判斷子模塊用於進行資料庫操作時,判斷更新欄位是否涉及國際化變量。攔截子模塊用於當第三判斷子模塊判定更新欄位設計國際化變量時,取消對包含國際化變量的欄位的更新。
[0054]本發明的實現資料庫國際化的方法及裝置、數據轉換方法及系統,在資料庫中僅僅保存了國際化變量,國際化操作在返回瀏覽器端JSON時進行處理,因此國際化與資料庫表結構無關,在此轉換過程中同時將數據中的國際化變量替換為對應語言的內容,轉換的同時也進行了國際化,因此替換過程不會產生大量新字符串對象,以保持高效率且不影響業務實現。無需進行複雜的表結構維護,增加和修改語言時僅僅增加或修改語言包即可,無需像現有技術的方案在資料庫中為每個需要國際化的語言增加每種語言的欄位或為每種語言建立子表,可擴展性好。
[0055]以上所述僅為本發明的實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發明的專利保護範圍內。
【權利要求】
1.一種實現資料庫國際化的方法,其特徵在於,包括如下步驟: 5101、將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句; 5102、將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本; 5103、生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係; 5104、根據初始化配置文件進行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。
2.一種實現資料庫國際化的裝置,其特徵在於,包括: 寫入模塊,用於將需要進行國際化的具體語言寫入資料庫初始化配置文件,初始化配置文件中包含具有具體語言的原初始化SQL語句; 腳本生成模塊,用於將初始化配置文件中的原初始化SQL語句中的具體語言用臨時變量來代替得到初始化SQL腳本; 語言包生成模塊,用於生成各種語言的對應語言包,語言包中包含臨時變量與具體語言的映射關係,然後採用摘要算法從語言包中生成與臨時變量對應的國際化變量,並在語言包中建立國際化變量與具體語言的映射關係; 初始化模塊,用於根據初始化配置文件進`行初始化,將初始化SQL腳本中的臨時變量用國際化變量替換。
3.一種基於國際化資料庫的數據轉換方法,其特徵在於,包括如下步驟: 5201、伺服器端查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係; 5202、當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端; 5203、瀏覽器端解析JSON序列得到數據。
4.根據權利要求3所述的一種基於國際化資料庫的數據轉換方法,其特徵在於,所述數據包含數值、布爾型、字符串,所述步驟S2022具體包括: 52021、當伺服器端接收到瀏覽器端發送的獲取數據請求時,判斷數據中的欄位類型是否為字符串,若是,進入步驟S2022, 52022、判斷該欄位是否為國際化變量,若是,進入步驟S2023,若否,則直接將原欄位返回至所述瀏覽器端; 52023、讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端。
5.根據權利要求3-4任意一項所述的一種基於國際化資料庫的數據轉換方法,其特徵在於,還包括更新資料庫步驟,具體包括: 在資料庫操作前,開啟AOP切面編程方式的程序功能維護; 進行資料庫操作時,判斷更新欄位是否涉及國際化變量;當判定更新欄位設計國際化變量時,取消對包含國際化變量的欄位的更新。
6.一種基於國際化資料庫的數據轉換系統,包括伺服器端以及與伺服器端通信連接的瀏覽器端,其特徵在於,所述伺服器端包括: 緩存模塊,用於查詢資料庫讀取所有語言包並將語言包在內存中進行緩存,語言包中包含國際化變量與具體語言的映射關係; 替換模塊,用於當伺服器端接收到瀏覽器端發送的獲取數據請求時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端; 所述瀏覽器端用於解析JSON序列得到數據。
7.根據權利要求6所述的一種基於國際化資料庫的數據轉換系統,其特徵在於,所述數據包含數值、布爾型、字符串,所述替換模塊具體包括: 第一判斷子模塊,用於當伺服器端接收到瀏覽器端發送的獲取數據請求時,判斷數據中的欄位類型是否為字符串; 第二判斷子模塊,用於當第一判斷子模塊判定是字符串時,判斷該欄位是否為國際化變量; 序列化子模塊,用於當第二判斷子模塊判斷欄位是國際化變量時,讀取緩存的與瀏覽器端預設語言對應的語言包,將數據中的國際化變量替換為對應預設語言的具體語言,同時將數據JSON序列化後,發送至所述瀏覽器端; 原欄位返回子模塊,用於當第二判斷子模塊判斷欄位不是國際化變量時,直接將原欄位內容返回至所述瀏覽器端。
8.根據權利要求6-7任意一項所述的一種基於國際化資料庫的數據轉換系統,其特徵在於,還包括更新資料庫模塊,具體包括: AOP執行子模塊,用於在資料庫操作前,開啟AOP切面編程方式的程序功能維護; 第三判斷子模塊,用於進行資料庫操作時,判斷更新欄位是否涉及國際化變量; 攔截子模塊,用於當第三判斷子模塊判定更新欄位設計國際化變量時,取消對包含國際化變量的欄位的更新。
【文檔編號】G06F17/30GK103699655SQ201310738035
【公開日】2014年4月2日 申請日期:2013年12月27日 優先權日:2013年12月27日
【發明者】陳偉力, 遊磊青, 王躍宗, 王玲 申請人:福建星網視易信息系統有限公司