一種替換數(shù)據(jù)庫的表名的方法及裝置的制造方法
【專利摘要】本發(fā)明實施例提供了一種替換數(shù)據(jù)庫表的表名的方法及裝置,獲取持久化對象;根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串;根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串;獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名;利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。SQL語句中數(shù)據(jù)庫表的初始表名被復(fù)雜字符串替換,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同,避免在SQL語句進(jìn)行數(shù)據(jù)庫表的表名替換時出現(xiàn)錯誤,實現(xiàn)正確替換SQL語句的數(shù)據(jù)庫表的表名。
【專利說明】
一種替換數(shù)據(jù)庫的表名的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種替換數(shù)據(jù)庫表的表名的方法及裝置。
【背景技術(shù)】
[0002]多租戶技術(shù)是云計算中的一種軟件架構(gòu)技術(shù),該技術(shù)可以實現(xiàn)多個用戶共用相同的系統(tǒng)或者程序組件,但同時保證不同用戶之間的數(shù)據(jù)的隔離性。多租戶技術(shù)在數(shù)據(jù)存儲上主要采用如下三個模式:
[0003]第一種模式:獨立數(shù)據(jù)庫,即一個租戶獨立使用一個數(shù)據(jù)庫存儲數(shù)據(jù)。這個模式數(shù)據(jù)隔離性最好,但是數(shù)據(jù)庫維護(hù)成本最高。
[0004]第二種模式:共享數(shù)據(jù)庫,獨立Schema,即多個租戶使用同一個數(shù)據(jù)庫,每個租戶獨立使用這個數(shù)據(jù)庫中的一個Schema。每個租戶的數(shù)據(jù)存儲于該Schema的一組數(shù)據(jù)庫表中。這個模式數(shù)據(jù)隔離性較好,但是需要維護(hù)多個Schema。
[0005]第三種模式:共享數(shù)據(jù)庫,共享Schema,即多個租戶使用同一個數(shù)據(jù)庫,使用同一個Schema。在一個Schema中,建立多套結(jié)構(gòu)相同的數(shù)據(jù)庫表,每個租戶單獨使用一套數(shù)據(jù)庫表存儲數(shù)據(jù),根據(jù)租戶的信息(例如:租戶的ID)給該租戶的數(shù)據(jù)庫表命名,獲得該數(shù)據(jù)庫表的實際表名,實現(xiàn)對多租戶的數(shù)據(jù)進(jìn)行隔離,降低維護(hù)成本。在執(zhí)行結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)語句時,用數(shù)據(jù)庫表的實際表名替換該SQL語句中的數(shù)據(jù)表的初始表名。
[0006]但是,采用第三種模式實現(xiàn)多租戶技術(shù),在執(zhí)行替換SQL語句中的數(shù)據(jù)表的表名時,若在SQL語句中,除了數(shù)據(jù)庫表的初始表名以外,還存在有與所述數(shù)據(jù)庫表的初始表名相同的字符串,就會產(chǎn)生SQL語句的表名替換錯誤,導(dǎo)致SQL語句錯誤。
【發(fā)明內(nèi)容】
[0007]本發(fā)明解決的技術(shù)問題在于提供一種替換數(shù)據(jù)庫表的表名的方法及裝置,從而能夠避免SQL語句中數(shù)據(jù)庫表的表名替換錯誤。
[0008]為此,本發(fā)明解決技術(shù)問題的技術(shù)方案是:
[0009]—種替換數(shù)據(jù)庫表的表名的方法,所述方法包括:
[0010]獲取持久化對象;
[0011]根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同;
[0012]根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串;
[0013]獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名;
[0014]利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。
[0015]可選的,所述預(yù)設(shè)的映射表的設(shè)置方法包括:
[0016]從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系;
[0017]給每個持久化對象生成一個復(fù)雜字符串;
[0018]用每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。
[0019]可選的,所述給每個持久化對象生成一個復(fù)雜字符串包括:
[0020]獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0021]可選的,所述給每個持久化對象生成一個復(fù)雜字符串包括:
[0022]給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0023]可選的,所述給每個持久化對象生成一個復(fù)雜字符串包括:
[0024]給每個持久化對象生成一個隨機碼;
[0025]將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。
[0026]可選的,所述方法還包括:
[0027]利用所述SQL語句對所述持久化對象進(jìn)行操作。
[0028]可選的,所述方法還包括:
[0029]對所述預(yù)設(shè)的映射表進(jìn)行編輯。
[0030]—種替換數(shù)據(jù)庫表的表名的裝置,所述裝置包括:
[0031]第一獲取單元,用于獲取持久化對象;
[0032]查找單元,用于根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同;
[0033]第一生成單元,用于根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串;
[0034]第二生成單元,用于獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名;
[0035]替換單元,用于利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。
[0036]可選的,所述裝置還包括:
[0037]第二獲取單元,用于從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系;
[0038]第三生成單元,用于給每個持久化對象生成一個復(fù)雜字符串;
[0039]建立單元,用于每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。
[0040]可選的,
[0041]所述第三生成單元,用于獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0042]可選的,
[0043]所述第三生成單元,用于給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0044]可選的,所述第三生成單元包括:
[0045]生成子單元,用于給每個持久化對象生成一個隨機碼;
[0046]組合子單元,用于將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。
[0047]可選的,所述裝置還包括:
[0048]操作單元,用于利用所述SQL語句對所述持久化對象進(jìn)行操作。
[0049]可選的,所述裝置還包括:
[0050]編輯單元,用于對所述預(yù)設(shè)的映射表進(jìn)行編輯。
[0051 ]通過上述技術(shù)方案可知,本發(fā)明有如下有益效果:
[0052]本發(fā)明實施例提供了一種替換數(shù)據(jù)庫表的表名的方法及裝置,獲取持久化對象;根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同;根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串;獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名;利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。SQL語句中數(shù)據(jù)庫表的初始表名被復(fù)雜字符串替換,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同,避免在SQL語句進(jìn)行數(shù)據(jù)庫表的表名替換時出現(xiàn)錯誤,實現(xiàn)正確替換SQL語句的數(shù)據(jù)庫表的表名。
【附圖說明】
[0053]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0054]圖1為本發(fā)明實施例提供的替換數(shù)據(jù)庫表的表名的方法流程圖;
[0055]圖2為本發(fā)明實施例提供的替換數(shù)據(jù)庫表的表名的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0056]為了給出正確替換SQL語句中數(shù)據(jù)庫表的表名的實現(xiàn)方案,本發(fā)明實施例提供了一種替換數(shù)據(jù)庫表的表名的方法及裝置,以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明。
[0057]實施例一
[0058]圖1為本發(fā)明實施例提供的替換數(shù)據(jù)庫表的表名的方法流程圖,包括:
[0059]101:獲取持久化對象。
[0060]102:根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同。
[0061]預(yù)設(shè)的映射表中存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,即一個持久化對象對應(yīng)于一個復(fù)雜字符串。每個持久化對象對應(yīng)的復(fù)雜字符串都很復(fù)雜,比數(shù)據(jù)庫表的原始表名所使用的字符串復(fù)雜的多。因此,每個持久化對象對應(yīng)的復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同。
[0062]在一個例子中,所述預(yù)設(shè)的映射表的設(shè)置方法包括:
[0063]從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系;
[0064]給每個持久化對象生成一個復(fù)雜字符串;
[0065]用每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。
[0066]初始狀態(tài)下,服務(wù)器給每套數(shù)據(jù)庫表設(shè)置一個初始表名,在服務(wù)器中存儲有持久化對象與數(shù)據(jù)表的初始表名的對應(yīng)關(guān)系,獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系O
[0067]給每個持久化對象生成一個復(fù)雜字符串,有至少三種可能的實現(xiàn)方式:
[0068]第一種可能的實現(xiàn)方式:
[0069]獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0070]預(yù)先人工給每個持久化對象設(shè)置一個隨機碼,隨機碼的長度以及類型根據(jù)實際需要具體設(shè)定,保證給每個持久化對象設(shè)置的隨機碼都是不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同復(fù)雜字符串即可。
[0071]第二種可能的實現(xiàn)方式:
[0072]給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0073]按照預(yù)設(shè)的算法給每個持久化對象自動生成一個隨機碼,隨機碼的長度以及類型根據(jù)實際需要具體設(shè)定,保證給每個持久化對象設(shè)置的隨機碼都是不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同復(fù)雜字符串即可。
[0074]第三種可能的實現(xiàn)方式:
[0075]給每個持久化對象生成一個隨機碼;
[0076]將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。
[0077]給每個持久化對象生成的隨機碼,可以人工生成,也可以按照預(yù)設(shè)的算法自動生成,隨機碼的長度以及類型根據(jù)實際需要具體設(shè)定。將每個持久化對象的隨機碼與數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串,每個隨機碼與數(shù)據(jù)庫表的初始表名組合后所得的復(fù)雜字符串都是不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同復(fù)雜字符串。
[0078]利用給每個持久化對象生成的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,復(fù)雜字符串比數(shù)據(jù)庫表的初始表名復(fù)雜,不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同。建立每個持久化對象與給該持久化對象生成的復(fù)雜字符串的對應(yīng)關(guān)系作為預(yù)設(shè)的映射表。
[0079]103:根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串。
[0080]在現(xiàn)有技術(shù)中,生成的操作持久化對象的SQL語句中,包括該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名。本發(fā)明中,生成的操作持久化對象的SQL語句中,該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名由復(fù)雜字符串替代。即,操作持久化對象的SQL語句中,沒有數(shù)據(jù)庫表的初始表名,只有復(fù)雜字符串。
[0081]104:獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名。
[0082]105:利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串O
[0083]用持久化對象對應(yīng)的數(shù)據(jù)庫表的實際表名替換SQL語句中的復(fù)雜字符串,由于復(fù)雜字符串是比數(shù)據(jù)庫表的原始表名復(fù)雜的字符串,不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同,因此,用數(shù)據(jù)庫表的實際表名替換SQL語句中的復(fù)雜字符串時,不會產(chǎn)生SQL語句的表名替換錯誤,實現(xiàn)正確替換SQL語句的數(shù)據(jù)庫表的表名。
[0084]在一個例子中,還包括:
[0085]利用所述SQL語句對所述持久化對象進(jìn)行操作。
[0086]當(dāng)用數(shù)據(jù)庫表的實際表名替換SQL語句中的復(fù)雜字符串后,利用替換后生成的SQL語句對所述持久化對象進(jìn)行操作。
[0087]在又一個例子中,還包括:
[0088]對所述預(yù)設(shè)的映射表進(jìn)行編輯。
[0089]在實際應(yīng)用中,技術(shù)人員還可以根據(jù)實際需要編輯預(yù)設(shè)的映射表中的持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,該編輯包括修改,刪除和新增中的任意一種或多種。
[0090]由上述內(nèi)容可知,本發(fā)明有如下有益效果:
[0091]SQL語句中數(shù)據(jù)庫表的初始表名被復(fù)雜字符串替換,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同,避免在SQL語句進(jìn)行數(shù)據(jù)庫表的表名替換時出現(xiàn)錯誤,實現(xiàn)正確替換SQL語句的數(shù)據(jù)庫表的表名。
[0092]實施例二
[0093]圖2為本發(fā)明實施例提供的替換數(shù)據(jù)庫表的表名的裝置結(jié)構(gòu)示意圖,包括:
[0094]第一獲取單元201,用于獲取持久化對象。
[0095]查找單元202,用于根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同。
[0096]第一生成單元203,用于根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串。
[0097]第二生成單元204,用于獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名。
[0098]替換單元205,用于利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。
[0099]可選的,所述裝置還包括:
[0100]第二獲取單元,用于從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系;
[0101]第三生成單元,用于給每個持久化對象生成一個復(fù)雜字符串;
[0102]建立單元,用于每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。
[0103]可選的,所述第三生成單元,用于獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0104]可選的,所述第三生成單元,用于給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。
[0105]可選的,所述第三生成單元包括:
[0106]生成子單元,用于給每個持久化對象生成一個隨機碼;
[0107]組合子單元,用于將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。
[0108]可選的,所述裝置還包括:
[0109]操作單元,用于利用所述SQL語句對所述持久化對象進(jìn)行操作。
[0110]可選的,所述裝置還包括:
[0111]編輯單元,用于對所述預(yù)設(shè)的映射表進(jìn)行編輯。
[0112]圖2所示的替換數(shù)據(jù)庫表的表名的裝置是與圖1所示的替換數(shù)據(jù)庫表的表名的方法所對應(yīng)的裝置,具體實現(xiàn)方式與圖1所示的方法類似,參考圖1所述的方法中的描述,這里不再贅述。
[0113]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項】
1.一種替換數(shù)據(jù)庫表的表名的方法,其特征在于,所述方法包括: 獲取持久化對象; 根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同; 根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串; 獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名; 利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的映射表的設(shè)置方法包括: 從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系; 給每個持久化對象生成一個復(fù)雜字符串; 用每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述給每個持久化對象生成一個復(fù)雜字符串包括: 獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述給每個持久化對象生成一個復(fù)雜字符串包括: 給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述給每個持久化對象生成一個復(fù)雜字符串包括: 給每個持久化對象生成一個隨機碼; 將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。6.根據(jù)權(quán)利要求1-5任意一項所述的方法,其特征在于,所述方法還包括: 利用所述SQL語句對所述持久化對象進(jìn)行操作。7.根據(jù)權(quán)利要求1-5任意一項所述的方法,其特征在于,所述方法還包括: 對所述預(yù)設(shè)的映射表進(jìn)行編輯。8.—種替換數(shù)據(jù)庫表的表名的裝置,其特征在于,所述裝置包括: 第一獲取單元,用于獲取持久化對象; 查找單元,用于根據(jù)預(yù)設(shè)的映射表查找所述持久化對象對應(yīng)的復(fù)雜字符串,所述預(yù)設(shè)的映射表存儲有多組持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系,所述復(fù)雜字符串不會與SQL語句中除數(shù)據(jù)庫表的初始表名以外的字符串相同; 第一生成單元,用于根據(jù)所述復(fù)雜字符串生成操作所述持久化對象的SQL語句,所述SQL語句中所述數(shù)據(jù)庫表的初始表名為所述復(fù)雜字符串; 第二生成單元,用于獲取租戶信息,根據(jù)所述租戶信息生成所述數(shù)據(jù)庫表的實際表名; 替換單元,用于利用所述數(shù)據(jù)庫表的實際表名替換所述SQL語句中所述數(shù)據(jù)庫表的復(fù)雜字符串。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 第二獲取單元,用于從服務(wù)器獲取持久化對象與數(shù)據(jù)庫表的初始表名的對應(yīng)關(guān)系; 第三生成單元,用于給每個持久化對象生成一個復(fù)雜字符串; 建立單元,用于每個持久化對象的復(fù)雜字符串替換該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名,建立每個持久化對象與復(fù)雜字符串的對應(yīng)關(guān)系生成所述預(yù)設(shè)的映射表。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述第三生成單元,用于獲取給每個持久化對象預(yù)先設(shè)置的隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。11.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述第三生成單元,用于給每個持久化對象生成一個隨機碼,將每個持久化對象的隨機碼作為該持久化對象的復(fù)雜字符串。12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第三生成單元包括: 生成子單元,用于給每個持久化對象生成一個隨機碼; 組合子單元,用于將每個持久化對象的隨機碼與該持久化對象對應(yīng)的數(shù)據(jù)庫表的初始表名組合作為該持久化對象的復(fù)雜字符串。13.根據(jù)權(quán)利要求8-12任意一項所述的裝置,其特征在于,所述裝置還包括: 操作單元,用于利用所述SQL語句對所述持久化對象進(jìn)行操作。14.根據(jù)權(quán)利要求8-12任意一項所述的方法,其特征在于,所述裝置還包括: 編輯單元,用于對所述預(yù)設(shè)的映射表進(jìn)行編輯。
【文檔編號】G06F17/30GK106055582SQ201610342150
【公開日】2016年10月26日
【申請日】2016年5月20日
【發(fā)明人】王賀, 聶經(jīng)緯, 劉旭, 牛志嘉, 時曉書
【申請人】中國農(nóng)業(yè)銀行股份有限公司