欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的方法、裝置及系統(tǒng)的制作方法

文檔序號(hào):6471873閱讀:217來源:國(guó)知局
專利名稱:實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的方法、裝 置及系統(tǒng)。
背景技術(shù)
當(dāng)前,數(shù)據(jù)庫(kù)正在各項(xiàng)技術(shù)中得到廣泛的使用。在需要進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí), 數(shù)據(jù)庫(kù)根據(jù)相應(yīng)指令以一定的格式完成對(duì)數(shù)據(jù)的存儲(chǔ),在需要進(jìn)行數(shù)據(jù)讀取
時(shí),通過向數(shù)據(jù)庫(kù)發(fā)送相應(yīng)的讀取要求,使得數(shù)據(jù)庫(kù)根據(jù)該指令查找得到相應(yīng) 的存儲(chǔ)數(shù)據(jù),并將該數(shù)據(jù)返回給發(fā)送讀取要求的一方。
隨著技術(shù)的不斷進(jìn)步以及各類型業(yè)務(wù)的不斷發(fā)展,數(shù)據(jù)的內(nèi)容也日益復(fù) 雜,往往是在一條數(shù)據(jù)中包括多個(gè)相互獨(dú)立的子數(shù)據(jù),以便通過這些子數(shù)據(jù)體 現(xiàn)更多的信息內(nèi)容。為了適應(yīng)數(shù)據(jù)日益復(fù)雜的特點(diǎn),當(dāng)前的數(shù)據(jù)多為結(jié)構(gòu)化數(shù)
據(jù),這種類型數(shù)據(jù)的特點(diǎn)是將一個(gè)數(shù)據(jù)中的多個(gè)子數(shù)據(jù)組成一個(gè)數(shù)據(jù)結(jié)構(gòu), 從而形成一個(gè)完整的結(jié)構(gòu)化數(shù)據(jù),在該結(jié)構(gòu)化數(shù)據(jù)中,各個(gè)子數(shù)據(jù)作為該結(jié)構(gòu) 化數(shù)據(jù)的數(shù)據(jù)項(xiàng)。以游戲數(shù)據(jù)為例在一個(gè)游戲用戶的數(shù)據(jù)中,通常需要包括 例如等級(jí)、性別、年齡、經(jīng)驗(yàn)、金錢、職業(yè)等子數(shù)據(jù),在現(xiàn)有技術(shù)中,這些子 數(shù)據(jù)分別以一個(gè)數(shù)字表示,這些子數(shù)據(jù)分別作為結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)項(xiàng)組成一個(gè) 數(shù)據(jù)結(jié)構(gòu),從而形成一條包括了如上所述子數(shù)據(jù)內(nèi)容的結(jié)構(gòu)化數(shù)據(jù)。
在現(xiàn)有技術(shù)中,為了實(shí)現(xiàn)將上述結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,通常需要在 數(shù)據(jù)庫(kù)中建立存儲(chǔ)表結(jié)構(gòu),該存儲(chǔ)表結(jié)構(gòu)與該數(shù)據(jù)庫(kù)需要保存的結(jié)構(gòu)數(shù)據(jù)的數(shù) 據(jù)結(jié)構(gòu)相對(duì)應(yīng),以便于將結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)分割出來后,分別獨(dú)立存 儲(chǔ)于數(shù)據(jù)庫(kù)中。具體的,在該存儲(chǔ)表結(jié)構(gòu)中,需要設(shè)置多個(gè)字段,每個(gè)字段與 需要存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)中的相應(yīng)數(shù)據(jù)項(xiàng)相對(duì)應(yīng),結(jié)構(gòu)化數(shù)據(jù)在存儲(chǔ)到數(shù)據(jù)庫(kù)之 前,首先進(jìn)行解析,得到各個(gè)數(shù)據(jù)項(xiàng),并將各個(gè)數(shù)據(jù)項(xiàng)存儲(chǔ)到數(shù)據(jù)庫(kù)中所設(shè)置 的相應(yīng)字段中。
仍以游戲數(shù)據(jù)為例,參見圖1,為了實(shí)現(xiàn)將結(jié)構(gòu)化的游戲數(shù)據(jù)存儲(chǔ)在數(shù)據(jù) 庫(kù)中,現(xiàn)有技術(shù)包括如下步驟
7步驟101:游戲邏輯模塊將需要存儲(chǔ)的數(shù)據(jù)發(fā)送數(shù)據(jù)庫(kù)中的解析模塊,其 中,所述數(shù)據(jù)為結(jié)構(gòu)化數(shù)據(jù);
步驟102:所述解析模塊根據(jù)預(yù)先設(shè)定的解析規(guī)則,對(duì)所述結(jié)構(gòu)化數(shù)據(jù)進(jìn) 行解析,拆分得到該結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng);
步驟103:所述解析^f莫塊將解析得到的各個(gè)數(shù)據(jù)項(xiàng)分別存儲(chǔ)到數(shù)據(jù)庫(kù)中相 應(yīng)的字段中去;例如,在從結(jié)構(gòu)化數(shù)據(jù)中拆分得到等級(jí)數(shù)據(jù)項(xiàng)、性別數(shù)據(jù)項(xiàng)、 年齡數(shù)據(jù)項(xiàng)后,解析模塊將這些數(shù)據(jù)項(xiàng)存儲(chǔ)到數(shù)據(jù)庫(kù)中為這些子數(shù)據(jù)所設(shè)置的 相應(yīng)字段中。
在采用上述方式進(jìn)行結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)后,在需要進(jìn)行數(shù)據(jù)讀取時(shí),數(shù)據(jù)庫(kù) 根據(jù)讀取請(qǐng)求,從相應(yīng)的字段獲得所需數(shù)據(jù)項(xiàng)的數(shù)據(jù),并將該數(shù)據(jù)返回給請(qǐng)求 獲得數(shù)據(jù)的一方。
對(duì)于其他類型、內(nèi)容的結(jié)構(gòu)化數(shù)據(jù),其存儲(chǔ)數(shù)據(jù)的方式與如上所述實(shí)施方 式類似。
上述對(duì)于結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方式,雖然能夠?qū)崿F(xiàn)對(duì)于結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ), 但是,仍然具有如下問題
由于在數(shù)據(jù)庫(kù)中需要設(shè)置與待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)相對(duì)應(yīng)的各個(gè)字段,且數(shù) 據(jù)庫(kù)中的解析模塊也需要以待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)項(xiàng)組成方式作為解析 規(guī)則來進(jìn)行結(jié)構(gòu)化數(shù)據(jù)的解析,因此, 一旦由于某種原因,上層應(yīng)用邏輯層中 的待存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)發(fā)生了改變,例如增加或減少了某個(gè)數(shù)據(jù)項(xiàng),則數(shù)據(jù)庫(kù)需 要獲知當(dāng)前變化情況,相應(yīng)的調(diào)整其所設(shè)置的字段,同時(shí),解析模塊也需要獲 知所述變化情況,相應(yīng)的改變解析規(guī)則。這些擴(kuò)大了底層數(shù)據(jù)庫(kù)與上層邏輯應(yīng) 用層之間的耦合度,該耦合度使得一旦邏輯層由于進(jìn)行功能擴(kuò)展而需要改變結(jié) 構(gòu)化數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)也需要進(jìn)行相應(yīng)調(diào)整,從而額外增加了溝通成本、維護(hù)成 本和開發(fā)成本,不利于業(yè)務(wù)的迅速推廣和實(shí)現(xiàn)。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng), 以降低進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)數(shù)據(jù)庫(kù)與上層邏輯層的耦合度。本發(fā)明實(shí)施例提供以下技術(shù)方案 一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法,該方法包括 接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);
將所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送 給數(shù)據(jù)庫(kù);
數(shù)據(jù)庫(kù)存儲(chǔ)進(jìn)行所述序列化后的數(shù)據(jù)。 一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝置,該裝置包括 結(jié)構(gòu)化數(shù)據(jù)接收模塊,用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù); 序列化處理模塊,用于對(duì)所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化; 序列化數(shù)據(jù)發(fā)送模塊,用于將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。 一種實(shí)現(xiàn)數(shù)據(jù)讀取的方法,該方法包括
接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù); 將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù); 將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。 一種實(shí)現(xiàn)數(shù)據(jù)讀取的裝置,該裝置包括
序列化數(shù)據(jù)查找模塊,該模塊用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從 數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù);
反序列化模塊,該模塊用于將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到相 應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù);
數(shù)據(jù)發(fā)送模塊,該模塊用于將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。
一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的系統(tǒng),該系統(tǒng)包括
數(shù)據(jù)處理裝置,該裝置用于用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),對(duì)所述結(jié)構(gòu) 化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);和, 用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù), 將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到相應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù),并將相應(yīng)數(shù) 據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方;數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)用于將所述數(shù)據(jù)處理裝置所發(fā)送來的序列化后的數(shù)據(jù)
存儲(chǔ)在該數(shù)據(jù)庫(kù)中所設(shè)置的一個(gè)字段中,以及根據(jù)所述數(shù)據(jù)讀取請(qǐng)求,查找所 存儲(chǔ)的對(duì)應(yīng)的序列化數(shù)據(jù),并將該數(shù)據(jù)返回給所述數(shù)據(jù)處理裝置。
可見,在本發(fā)明實(shí)施例中,由于對(duì)結(jié)構(gòu)化數(shù)據(jù)的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化, 并將序列化后的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)所設(shè)置的一個(gè)字段中,因此,無需數(shù)據(jù)按照 結(jié)構(gòu)化數(shù)據(jù)的組成方式相應(yīng)的設(shè)置多個(gè)字段,也無需在進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)進(jìn)行結(jié) 構(gòu)化數(shù)據(jù)的解析,從而使得在由于系統(tǒng)升級(jí)等原因而導(dǎo)致結(jié)構(gòu)化數(shù)據(jù)發(fā)生改變 時(shí),數(shù)據(jù)庫(kù)無需進(jìn)行相應(yīng)的修改,數(shù)據(jù)庫(kù)與上層應(yīng)用之間的耦合度低,從而使 得進(jìn)行新業(yè)務(wù)開發(fā)時(shí),不會(huì)產(chǎn)生額外的溝通成本、維護(hù)成本和開發(fā)成本,有利 于新業(yè)務(wù)的迅速實(shí)現(xiàn)和推廣。


圖1為現(xiàn)有技術(shù)中實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的流程圖; 圖2為本發(fā)明實(shí)施例中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法的流程圖; 圖3為本發(fā)明一具體實(shí)例中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法的流程圖; 圖4為本發(fā)明實(shí)施例中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝置的模塊圖; 圖5為本發(fā)明實(shí)施例中實(shí)現(xiàn)數(shù)據(jù)讀取的方法的流程圖; 圖6為本發(fā)明一具體實(shí)例中實(shí)現(xiàn)數(shù)據(jù)讀取的方法的流程圖; 圖7為本發(fā)明實(shí)施例中實(shí)現(xiàn)數(shù)據(jù)讀取的裝置的模塊圖; 圖8為本發(fā)明實(shí)施例中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的系統(tǒng)的示意圖。
具體實(shí)施例方式
下面,結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
參見圖2,在本發(fā)明一實(shí)施例中,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法包括以下步驟 步驟201:接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);
步驟202:將所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后 的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);
步驟203:數(shù)據(jù)庫(kù)存儲(chǔ)進(jìn)行所述序列化后的數(shù)據(jù)。
在本發(fā)明優(yōu)選實(shí)施例中,為了進(jìn)一步節(jié)省存儲(chǔ)空間,步驟202可以采用如 下兩種方式實(shí)現(xiàn)方式一
首先,將結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行序列化,得到一個(gè)序 列化后的二進(jìn)制數(shù)據(jù);然后,對(duì)所述序列化后的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理, 得到字符串,并以該字符串作為所述序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);
方式二
首先,對(duì)結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理,分別得 到這些二進(jìn)制it據(jù)所對(duì)應(yīng)的字符,然后,將這些字符進(jìn)行序列化,得到字符串, 并將該字符串作為所述序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。
同時(shí),在本發(fā)明另一優(yōu)選實(shí)施例中,為了保證數(shù)據(jù)存儲(chǔ)的準(zhǔn)確性,在進(jìn)行 所述序列化之前,本發(fā)明所提供的方法可進(jìn)一步包括預(yù)處理的步驟,其中的一 種預(yù)處理可以為
對(duì)待存儲(chǔ)的數(shù)據(jù)進(jìn)行緊縮對(duì)齊處理,從而排除在不同操作系統(tǒng)下,由于字 節(jié)對(duì)齊方式不同所帶來的問題;
此外,為了提高存儲(chǔ)效率,在該方法中,可以預(yù)先定義為待存儲(chǔ)的結(jié)構(gòu)化
數(shù)據(jù)定義版本號(hào),以網(wǎng)絡(luò)游戲?yàn)槔x版本號(hào)的具體實(shí)現(xiàn)為
當(dāng)游戲管理器申請(qǐng)一塊數(shù)據(jù)區(qū)(通常為"內(nèi)存")時(shí),對(duì)該數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn) 行初始化,該數(shù)據(jù)區(qū)的數(shù)據(jù)的初始版本號(hào)即為0。每次數(shù)據(jù)區(qū)中的數(shù)據(jù)發(fā)生變 化時(shí),都會(huì)將版本號(hào)自動(dòng)升l,以便于根據(jù)版本號(hào)確認(rèn)數(shù)據(jù)是否更新。也就是 說,數(shù)據(jù)庫(kù)只存儲(chǔ)(或者說"接受")最新的數(shù)據(jù)。這是一種解決"多線程數(shù)據(jù) 沖突問題"的方法。
相應(yīng)的,在定義版本號(hào)的前提下,在進(jìn)行所述存儲(chǔ)之前,可以進(jìn)一步數(shù)據(jù) 校驗(yàn)的步驟,具體為判斷待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)的版本號(hào)是否大于數(shù)據(jù)庫(kù)中當(dāng) 前存儲(chǔ)數(shù)據(jù)的版本號(hào),如果是,表明當(dāng)前待存儲(chǔ)數(shù)據(jù)為較新版本的數(shù)據(jù),則執(zhí) 行所述存儲(chǔ)數(shù)據(jù)的步驟;否則,表明當(dāng)前待存儲(chǔ)的數(shù)據(jù)為老版本的數(shù)據(jù),無需 進(jìn)行數(shù)據(jù)存儲(chǔ),則拒絕對(duì)該數(shù)據(jù)執(zhí)行所述數(shù)據(jù)存儲(chǔ)的步驟,進(jìn)一步的,還可返 回?cái)?shù)據(jù)存儲(chǔ)失敗消息,以告知上層邏輯層數(shù)據(jù)存儲(chǔ)失敗。
下面,結(jié)合具體實(shí)例,對(duì)上述方法的實(shí)現(xiàn)加以詳細(xì)說明。
ii以游戲數(shù)據(jù)為例,在游戲中,需要在數(shù)據(jù)庫(kù)中存儲(chǔ)玩家的數(shù)據(jù),每個(gè)玩家 的數(shù)據(jù)包括等級(jí)、性別、年齡、經(jīng)驗(yàn)、金錢、職業(yè)等信息,這些信息分別以一 個(gè)數(shù)字表示,形成多條子數(shù)據(jù),各個(gè)子數(shù)據(jù)分別作為一個(gè)結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù) 項(xiàng),從而形成一條結(jié)構(gòu)化游戲數(shù)據(jù)。為了存儲(chǔ)如上所述的游戲數(shù)據(jù),參見圖3,
需要以下步驟
步驟301:游戲邏輯^t塊將所述結(jié)構(gòu)化游戲數(shù)據(jù)發(fā)送至二進(jìn)制數(shù)據(jù)序列化 模塊;
步驟302:所述二進(jìn)制數(shù)據(jù)序列化才莫塊將所述游戲數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)中 的二進(jìn)制數(shù)據(jù)進(jìn)行序列化,得到 一條序列化后的二進(jìn)制數(shù)據(jù);
步驟303:所述二進(jìn)制數(shù)據(jù)序列化^t塊將所述序列化后的二進(jìn)制數(shù)據(jù)發(fā)送 給串行化模塊,串行化模塊將該二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理后得到相應(yīng)的字符 串;
步驟304:將得到的字符串發(fā)送給數(shù)據(jù)庫(kù)中的存儲(chǔ)模塊,存儲(chǔ)模塊根據(jù)所 述游戲數(shù)據(jù)的類型以及標(biāo)識(shí),將所述字符串存儲(chǔ)在數(shù)據(jù)庫(kù)中所設(shè)置的一個(gè)字段 中。
在該具體實(shí)施例中,對(duì)于游戲數(shù)據(jù)不但進(jìn)行了序列化處理,同時(shí)還進(jìn)一步 執(zhí)行了串行化處理,從而通過該串行化處理降低數(shù)據(jù)所占用的存儲(chǔ)空間,從而 提高存儲(chǔ)效率。從本發(fā)明實(shí)施例所要解決的問題可以看出,在本發(fā)明其他實(shí)施 例中,可以不執(zhí)行所述串行化處理的步驟,并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)。
此外需要說明的是在該實(shí)施例中,步驟302和303的順序可以互換,也 就是說,可以先對(duì)各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理,得到各個(gè)數(shù)據(jù)項(xiàng) 數(shù)據(jù)所對(duì)應(yīng)的字符,然后,再對(duì)這些字符進(jìn)行序列化處理,從而得到用戶數(shù)據(jù) 所對(duì)應(yīng)的字符串。
還需說明的是,在本實(shí)施例中,采用二進(jìn)制數(shù)據(jù)序列化模塊以及串行化模 塊兩個(gè)獨(dú)立模塊分別實(shí)現(xiàn)序列化功能以及串行化處理功能,在本發(fā)明其他實(shí)施 例中,也可采用一個(gè)模塊來實(shí)現(xiàn)上述功能,則相應(yīng)的二進(jìn)制數(shù)據(jù)序列化模塊與 串行化模塊之間的數(shù)據(jù)交互步驟可以省略;或者,也可采用具有序列化功能以及串行化功能的數(shù)據(jù)庫(kù)來實(shí)現(xiàn)上述方法,則數(shù)據(jù)庫(kù)與所述串行化模塊、二進(jìn)制 數(shù)據(jù)序列化模塊之間的交互可以省略,并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)。
為了對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)加以更加詳細(xì)的說明,下面對(duì)所述串行化處理 的具體實(shí)現(xiàn)加以詳細(xì)介紹。以圖3所對(duì)應(yīng)的實(shí)施例為例,在該實(shí)施例中,在將 各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行序列化后,所述串行化處理可以采用以下方式實(shí)
現(xiàn):
所述串行化模塊以字符(CHAR)類型指針接收進(jìn)行所述序列化后得到的 二進(jìn)制數(shù)據(jù)的頭指針,然后,利用該指針,逐一取出二進(jìn)制數(shù)據(jù)的單字節(jié);
將取出的單字節(jié)數(shù)據(jù)轉(zhuǎn)換為兩個(gè)單字節(jié),為了描述方便,這兩個(gè)單字節(jié)被 分別稱為第一單字節(jié)和第二單字節(jié);其中,第一單字節(jié)的形成方式為取出原 單字節(jié)中的前四位字節(jié),對(duì)該前四位字節(jié)進(jìn)行填零梯:作,形成一個(gè)8位的第一 單字節(jié),第二單字節(jié)的形成方式為取出原單字節(jié)中的后四位字節(jié),同樣通過 填零;t喿作,形成一個(gè)8位的第二單字節(jié);
對(duì)第一單字節(jié)和第二單字節(jié)分別進(jìn)行加i處理,所得到的字節(jié)即為滿足
ASCII編碼規(guī)則的字符串;在本步驟中,對(duì)第一單字節(jié)和第二單字節(jié)進(jìn)行加1 處理的目的在于由于第一單字節(jié)和第二單字節(jié)都有可能為零,而在字符串類 型中通常以0表示字符串結(jié)尾,因此,為了避免在非結(jié)尾的位置出現(xiàn)O,對(duì)第 一單字節(jié)和第二單字節(jié)分別作加1處理。相應(yīng)的,在獲取數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)需要
在獲得字符串后,先對(duì)該字符串中的每個(gè)字符做減1處理,然后再將每?jī)蓚€(gè)字 節(jié)合并成一個(gè)字節(jié),從而保證獲取數(shù)據(jù)的正確性。
與上述數(shù)據(jù)存儲(chǔ)方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的 裝置,參見圖4,該裝置包括
結(jié)構(gòu)化數(shù)據(jù)接收模塊401,用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù); 序列化處理模塊402,用于對(duì)所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列
化;
序列化數(shù)據(jù)發(fā)送模塊403,用于將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。
13在本發(fā)明優(yōu)選實(shí)施例中,所述序列化處理;漠塊402可以采用如下兩種方式 實(shí)現(xiàn)
方式一、序列化處理模塊402包括
二進(jìn)制數(shù)據(jù)序列化模塊,該模塊用于將結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn) 制數(shù)據(jù)進(jìn)行序列化,得到 一個(gè)序列化后的二進(jìn)制數(shù)據(jù);
第一串行化模塊,該模塊用于對(duì)所述序列化后的二進(jìn)制數(shù)據(jù)進(jìn)行串行化 處理,得到作為所述序列化后的凄l(xiāng)據(jù)的字符串。
方式二、序列化處理模塊402包括
第二串行化模塊,該模塊用于對(duì)結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù) 進(jìn)行串行化處理,分別得到這些二進(jìn)制數(shù)據(jù)所對(duì)應(yīng)的字符;
字符序列化模塊,該模塊用于對(duì)所述第二串行化模塊得到的各個(gè)字符進(jìn) 行序列化處理,得到作為所述序列化后的數(shù)據(jù)的字符串。
同樣,為了保證數(shù)據(jù)存儲(chǔ)的準(zhǔn)確性,所述裝置還可進(jìn)一步包括緊縮對(duì)齊模 塊,用于對(duì)待存儲(chǔ)的數(shù)據(jù)進(jìn)行緊縮對(duì)齊處理,從而排除在不同操作系統(tǒng)下,由 于字節(jié)對(duì)齊方式不同所帶來的問題;
和/或,所述裝置還可進(jìn)一步包括數(shù)據(jù)校驗(yàn)?zāi)K,用于在進(jìn)行所述存儲(chǔ) 之前,判斷待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)的版本號(hào)是否大于數(shù)據(jù)庫(kù)中當(dāng)前存儲(chǔ)數(shù)據(jù)的版 本號(hào),如果大于,則控制所述序列化數(shù)據(jù)發(fā)送模塊403執(zhí)行發(fā)送數(shù)據(jù)的步驟, 否則,控制該序列化數(shù)據(jù)發(fā)送模塊403不進(jìn)行所述數(shù)據(jù)發(fā)送的步驟。
與上述實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了 一種實(shí)現(xiàn)數(shù)據(jù) 讀取的方法,參見圖5,該方法包括
步驟501:接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的 序列化數(shù)據(jù);
步驟502:將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù); 步驟503:將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。 在本發(fā)明優(yōu)選實(shí)施例中,考慮到節(jié)省存儲(chǔ)空間的需要,在進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),將字符串作為序列化數(shù)據(jù)存儲(chǔ)到lt據(jù)庫(kù)中,在此情況下,實(shí)現(xiàn)步驟502可以采 用如下兩種方式 方式一
首先,對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串進(jìn)行反串行化處理,得到 二進(jìn)制數(shù)據(jù);
然后,對(duì)所述二進(jìn)制數(shù)據(jù)進(jìn)行反序列化處理,得到結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù) 項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù); 方式二
首先,對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串進(jìn)行反序列化處理,得到 各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符;
然后,對(duì)各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符進(jìn)行反串行化處理,得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng) 的二進(jìn)制數(shù)據(jù)。
此外,為了保證讀取數(shù)據(jù)的準(zhǔn)確性,可以在進(jìn)行所述反序列化處理之前進(jìn) 一步包括才交驗(yàn)步驟,具體為
根據(jù)讀取請(qǐng)求,判斷所需讀取的數(shù)據(jù)與數(shù)據(jù)庫(kù)查找得到的序列化數(shù)據(jù)的版 本號(hào)是否相同,如果相同,則執(zhí)行后續(xù)反序列化處理的步驟,否則,不再執(zhí)行 后續(xù)步驟。
為了更加詳細(xì)的說明本發(fā)明實(shí)施例,舉一具體實(shí)例對(duì)本發(fā)明實(shí)施例所提供 的讀取數(shù)據(jù)的方法加以詳細(xì)描述。
仍以游戲數(shù)據(jù)為例,在游戲中,需要在數(shù)據(jù)庫(kù)中存儲(chǔ)玩家的數(shù)據(jù),每個(gè)玩 家的數(shù)據(jù)包括等級(jí)、性別、年齡、經(jīng)驗(yàn)、金錢、職業(yè)等信息,這些信息分別以 一個(gè)數(shù)字表示,形成多條子數(shù)據(jù),各個(gè)子數(shù)據(jù)分別作為一個(gè)結(jié)構(gòu)化數(shù)據(jù)中的數(shù) 據(jù)項(xiàng),從而形成一條結(jié)構(gòu)化游戲數(shù)據(jù)。當(dāng)需要獲M目應(yīng)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的數(shù)據(jù)時(shí), 參見圖6,本發(fā)明實(shí)施例所提供的方法包括以下步驟
步驟601:游戲邏輯模塊向數(shù)據(jù)庫(kù)發(fā)送讀取數(shù)據(jù)的請(qǐng)求,數(shù)據(jù)庫(kù)根據(jù)該請(qǐng) 求中所攜帶的數(shù)據(jù)標(biāo)識(shí)、類型,獲取相應(yīng)的序列化lt據(jù);
步驟602:游戲邏輯模塊將所述序列化數(shù)據(jù)發(fā)送給反串行化模塊,該反串行化處理模塊對(duì)序列化數(shù)據(jù)進(jìn)行反串行化處理,得到所述序列化數(shù)據(jù)所對(duì)應(yīng)的
二進(jìn)制數(shù)據(jù),并將該二進(jìn)制數(shù)據(jù)發(fā)送給反序列化模塊;
步驟603:所述反序列化模塊對(duì)所述二進(jìn)制數(shù)據(jù)進(jìn)行反序列化處理,得到 各個(gè)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù);
步驟604:根據(jù)游戲邏輯模塊所發(fā)送的請(qǐng)求,將相應(yīng)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn) 制數(shù)據(jù)返回給游戲邏輯模塊。
需要說明的是在該實(shí)施例中,步驟602和603的順序可以互換,也就是 說,可以先對(duì)序列化數(shù)據(jù)進(jìn)行反序列化處理,得到各個(gè)數(shù)據(jù)項(xiàng)數(shù)據(jù)所對(duì)應(yīng)的字 符,然后,再對(duì)這些字符進(jìn)行反串行化處理,從而得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn) 制數(shù)據(jù)。
還需說明的是,在本實(shí)施例中,采用反序列化模塊以及反串行化模塊兩個(gè) 獨(dú)立模塊分別實(shí)現(xiàn)反序列化功能以及反串行化處理功能,在本發(fā)明其他實(shí)施例 中,也可采用一個(gè)模塊來實(shí)現(xiàn)上述功能,則相應(yīng)的反序列化模塊與反串行化模 塊之間的數(shù)據(jù)交互步驟可以省略;或者,也可采用具有反序列化功能以及反串 行化功能的數(shù)據(jù)庫(kù)來實(shí)現(xiàn)上述方法,則數(shù)據(jù)庫(kù)與所述反串行化模塊、反序列化 模塊之間的交互可以省略,并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)。
需要說明的是,反串行化處理與串行化處理互為逆操作,在本發(fā)明一實(shí)施 例中,執(zhí)行反串行化處理具體可以包括
針對(duì)需要進(jìn)行反串行化處理的字符串,將該字符串中的每個(gè)字符做減1 處理,然后再將每?jī)蓚€(gè)字節(jié)合并成一個(gè)字節(jié),從而得到相應(yīng)的二進(jìn)制數(shù)據(jù)。
與上述數(shù)據(jù)讀取方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種實(shí)現(xiàn)數(shù)據(jù)讀取的 裝置,參見圖7,該裝置包括
序列化數(shù)據(jù)查找模塊701,該模塊用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求, 從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù);
反序列化模塊702,該模塊用于將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得 到相應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù);
16數(shù)據(jù)發(fā)送模塊703,該模塊用于將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)
的一方。
在本發(fā)明優(yōu)選實(shí)施例中,所述反序列化模塊702可以采用如下兩種方式實(shí)
現(xiàn)
方式一、在該方式中,所述反序列化模塊702包括
第一反串行化模塊,該模塊用于對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的字符串進(jìn)行 反串行化處理,得到二進(jìn)制數(shù)據(jù);
二進(jìn)制數(shù)據(jù)反序列化模塊,該模塊用于對(duì)所述二進(jìn)制數(shù)據(jù)進(jìn)行反序列化處 理,得到結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。
方式二、在該方式中,所述反序列化模塊702包括
字符反序列化模塊,該模塊用于對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串 進(jìn)行反序列化處理,得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符;
第二反串行化模塊,該模塊用于對(duì)各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符進(jìn)行反串行化處 理,得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。
此外,為了保證讀取數(shù)據(jù)的準(zhǔn)確性,所述裝置還可進(jìn)一步包括校驗(yàn)?zāi)K, 該模塊用于根據(jù)讀取請(qǐng)求,判斷所需讀取的數(shù)據(jù)與查找得到的序列化數(shù)據(jù)的 版本號(hào)是否相同,如果相同,則控制所述反序列化模塊702執(zhí)行所述反序列化 的功能,否則,終止該反序列化模塊702執(zhí)行所述反序列化的功能。
本發(fā)明實(shí)施例還提供了一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的系統(tǒng),參見圖8,該系 統(tǒng)包括
數(shù)據(jù)處理裝置801,該裝置用于用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),對(duì)所述 結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù); 和,用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化 數(shù)據(jù),將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到相應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù),并將 相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方;
數(shù)據(jù)庫(kù)802,該數(shù)據(jù)庫(kù)用于將所述數(shù)據(jù)處理裝置801所發(fā)送來的序列化
17后的數(shù)據(jù)存儲(chǔ)在該數(shù)據(jù)庫(kù)中所設(shè)置的一個(gè)字段中,以及根據(jù)所述數(shù)據(jù)讀取請(qǐng) 求,查找所存儲(chǔ)的對(duì)應(yīng)的序列化數(shù)據(jù),并將該數(shù)據(jù)返回給所述數(shù)據(jù)處理裝置 謝。
其中,可以采用如上各個(gè)實(shí)施例所述的實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝置以及實(shí)現(xiàn)數(shù)據(jù) 讀取的裝置作為所述數(shù)據(jù)處理裝置,在具體實(shí)現(xiàn)過程中,所述數(shù)據(jù)存儲(chǔ)裝置以 及數(shù)據(jù)讀取裝置可以相互獨(dú)立設(shè)置,也可以集成在同一裝置中,并不影響本發(fā) 明實(shí)施例的實(shí)現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通 技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾, 這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法,其特征在于,該方法包括接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);將所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)存儲(chǔ)進(jìn)行所述序列化后的數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述進(jìn)行序列化并將序列 化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)為將結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行序列化,得到一個(gè)序列化后 的二進(jìn)制數(shù)據(jù),對(duì)所述序列化后的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理,得到字符串, 并以該字符串作為所述序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述進(jìn)行序列化并將序列 化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)為對(duì)結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理,分別得到這些 二進(jìn)制數(shù)據(jù)所對(duì)應(yīng)的字符,將這些字符進(jìn)行序列化得到字符串,并將該字符串 作為所述序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。
4、 根據(jù)權(quán)利要求1 3任意一項(xiàng)所述的方法,其特征在于,所述串行化處 理的具體實(shí)現(xiàn)為以字符類型指針接收進(jìn)行待處理的二進(jìn)制數(shù)據(jù)的頭指針,利用該指針,逐 一取出所述二進(jìn)制數(shù)據(jù)的單字節(jié);對(duì)當(dāng)前取出的單字節(jié)中的前四位字節(jié)進(jìn)行填零操作,形成一個(gè)8位的第一 單字節(jié),對(duì)當(dāng)前取出的單字節(jié)中的后四位字節(jié)進(jìn)行填零操作,形成一個(gè)8位的 第二單字節(jié);對(duì)所述第一單字節(jié)和第二單字節(jié)分別進(jìn)行加1處理,得到符合ASCII編碼 規(guī)則的字符串。
5、 根據(jù)權(quán)利要求1 3任意一項(xiàng)所述的方法,其特征在于,該方法預(yù)先為 待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)定義版本號(hào),并在所述結(jié)構(gòu)化數(shù)據(jù)發(fā)生變化時(shí)自動(dòng)升級(jí)所 述版本號(hào);在所述數(shù)據(jù)庫(kù)存儲(chǔ)進(jìn)行所述序列化后的數(shù)據(jù)之前,該方法進(jìn)一步包括 判斷待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)的版本號(hào)是否大于數(shù)據(jù)庫(kù)中當(dāng)前存儲(chǔ)數(shù)據(jù)的版 本號(hào),如果是,則執(zhí)行所述存儲(chǔ)數(shù)據(jù)的步驟。
6、 根據(jù)權(quán)利要求1 3任意一項(xiàng)所述的方法,其特征在于,在進(jìn)行所述序 列化之前,該方法進(jìn)一步包括對(duì)待存儲(chǔ)的數(shù)據(jù)進(jìn)行緊縮對(duì)齊處理。
7、 一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝置,其特征在于,該裝置包括 結(jié)構(gòu)化數(shù)據(jù)接收模塊,用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù); 序列化處理模塊,用于對(duì)所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化; 序列化數(shù)據(jù)發(fā)送模塊,用于將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述序列化處理模塊包括 二進(jìn)制數(shù)據(jù)序列化模塊,該模塊用于將結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行序列化,得到一個(gè)序列化后的二進(jìn)制數(shù)據(jù);第一串行化才莫塊,該模塊用于對(duì)所述序列化后的二進(jìn)制數(shù)據(jù)進(jìn)行串行化 處理,得到作為所述序列化后的數(shù)據(jù)的字符串。
9、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述序列化處理模塊包括 第二串行化模塊,該模塊用于對(duì)結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)的二進(jìn)制數(shù)據(jù)進(jìn)行串行化處理,分別得到這些二進(jìn)制數(shù)據(jù)所對(duì)應(yīng)的字符;字符序列化模塊,該模塊用于對(duì)所述第二串行化模塊得到的各個(gè)字符進(jìn) 行序列化處理,得到作為所述序列化后的數(shù)據(jù)的字符串。
10、 根據(jù)權(quán)利要求7 9任意一項(xiàng)所述的裝置,其特征在于,該裝置進(jìn)一步 包括緊縮對(duì)齊沖莫塊,用于對(duì)待存儲(chǔ)的數(shù)據(jù)進(jìn)行緊縮對(duì)齊處理。
11、 根據(jù)權(quán)利要求7 9任意一項(xiàng)所述的裝置,其特征在于,該裝置進(jìn)一步 包括數(shù)據(jù)校驗(yàn)?zāi)K,該模塊用于在進(jìn)行所述存儲(chǔ)之前,判斷待存儲(chǔ)的結(jié)構(gòu)化 數(shù)據(jù)的版本號(hào)是否大于數(shù)據(jù)庫(kù)中當(dāng)前存儲(chǔ)數(shù)據(jù)的版本號(hào),如果大于,則控制所述序列化數(shù)據(jù)發(fā)送模塊執(zhí)行發(fā)送數(shù)據(jù)的步驟。
12、 一種實(shí)現(xiàn)數(shù)據(jù)讀取的方法,其特征在于,該方法包括 接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù); 將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù); 將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。
13、 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述進(jìn)行反序列化處理, 得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)的具體實(shí)現(xiàn)為對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串進(jìn)行反串行化處理,得到二進(jìn)制 數(shù)據(jù);對(duì)所述二進(jìn)制數(shù)據(jù)進(jìn)行反序列化處理,得到結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)所對(duì) 應(yīng)的二進(jìn)制數(shù)據(jù)。
14、 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述進(jìn)行反序列化處理, 得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)的具體實(shí)現(xiàn)為對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串進(jìn)行反序列化處理,得到各數(shù)據(jù) 項(xiàng)所對(duì)應(yīng)的字符;對(duì)各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符進(jìn)行反串行化處理,得到各個(gè)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二 進(jìn)制數(shù)據(jù)。
15、 根據(jù)權(quán)利要求12 14任意一項(xiàng)所述的方法,其特征在于,在進(jìn)行所述 反序列化處理之前進(jìn)一 步包括根據(jù)讀取請(qǐng)求,判斷所需讀取的數(shù)據(jù)與數(shù)據(jù)庫(kù)查找得到的序列化數(shù)據(jù)的版 本號(hào)是否相同,如果相同,則執(zhí)行后續(xù)反序列化處理的步驟。
16、 根據(jù)權(quán)利要求12 14任意一項(xiàng)所述的方法,其特征在于,所述反串行 化處理的具體實(shí)現(xiàn)為針對(duì)需要進(jìn)行反串行化處理的字符串或字符,將該字符串中的每個(gè)字符或 所述字符做減1處理,然后將每?jī)蓚€(gè)字節(jié)合并成一個(gè)字節(jié),得到相應(yīng)的二進(jìn)制 數(shù)據(jù)。
17、 一種實(shí)現(xiàn)數(shù)據(jù)讀取的裝置,其特征在于,該裝置包括序列化數(shù)據(jù)查找模塊,該模塊用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化lt據(jù);反序列化模塊,該模塊用于將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到相 應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù);數(shù)據(jù)發(fā)送模塊,該模塊用于將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。
18、 根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述反序列化模塊包括 第 一反串行化模塊,該模塊用于對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的字符串進(jìn)行反串行化處理,得到二進(jìn)制數(shù)據(jù);二進(jìn)制數(shù)據(jù)反序列化模塊,該模塊用于對(duì)所述二進(jìn)制數(shù)據(jù)進(jìn)行反序列化處 理,得到結(jié)構(gòu)化數(shù)據(jù)中各個(gè)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。
19、 根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述反序列化模塊包括 字符反序列化模塊,該模塊用于對(duì)作為所述序列化數(shù)據(jù)存儲(chǔ)的所述字符串進(jìn)行反序列化處理,得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符;第二反串行化模塊,該模塊用于對(duì)各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的字符進(jìn)行反串行化處 理,得到各數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。
20、 根據(jù)權(quán)利要求17 19任意一項(xiàng)所述的裝置,其特征在于,該裝置進(jìn)一 步包括校驗(yàn)?zāi)K,該模塊用于根據(jù)讀取請(qǐng)求,判斷所需讀取的數(shù)據(jù)與查找得 到的序列化數(shù)據(jù)的版本號(hào)是否相同,如果相同,則控制所述反序列化模塊執(zhí)行 所述反序列化的功能。
21、 一種實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的系統(tǒng),其特征在于,該系統(tǒng)包括 數(shù)據(jù)處理裝置,該裝置用于用于接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),對(duì)所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);和, 用于接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù), 將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到相應(yīng)的數(shù)據(jù)項(xiàng)的數(shù)據(jù),并將相應(yīng)數(shù) 據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的 一方;數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)用于將所述數(shù)據(jù)處理裝置所發(fā)送來的序列化后的數(shù)據(jù)存儲(chǔ)在該數(shù)據(jù)庫(kù)中所設(shè)置的一個(gè)字段中,以及根據(jù)所述數(shù)據(jù)讀取請(qǐng)求,查找所 存儲(chǔ)的對(duì)應(yīng)的序列化數(shù)據(jù),并將該數(shù)據(jù)返回給所述數(shù)據(jù)處理裝置。
22、 根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理裝置包括 權(quán)利要求7~11任意一項(xiàng)所述的實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝置;和,權(quán)利要求17~20任意一項(xiàng)所述的實(shí)現(xiàn)數(shù)據(jù)讀取的裝置。
23、 根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于,所述實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的裝 置和實(shí)現(xiàn)數(shù)據(jù)讀取的裝置集成在同 一裝置中。
全文摘要
本發(fā)明實(shí)施例公開了實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、讀取的方法、裝置及系統(tǒng),其中,所述實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的方法包括接收待存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);將所述結(jié)構(gòu)化數(shù)據(jù)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行序列化,并將序列化后的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)存儲(chǔ)進(jìn)行所述序列化后的數(shù)據(jù)。實(shí)現(xiàn)數(shù)據(jù)讀取的方法包括接收數(shù)據(jù)讀取請(qǐng)求,根據(jù)所述請(qǐng)求,從數(shù)據(jù)庫(kù)查找得到對(duì)應(yīng)的序列化數(shù)據(jù);將所述序列化數(shù)據(jù)進(jìn)行反序列化處理,得到各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù);將相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)發(fā)送給請(qǐng)求讀取數(shù)據(jù)的一方。采用本發(fā)明實(shí)施例,能夠降低數(shù)據(jù)庫(kù)與上層邏輯層的耦合度,有利于新業(yè)務(wù)的迅速推廣和實(shí)現(xiàn)。
文檔編號(hào)G06F17/30GK101477532SQ20081024046
公開日2009年7月8日 申請(qǐng)日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者洪曉健 申請(qǐng)人:北京暢游天下網(wǎng)絡(luò)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
资阳市| 临安市| 麻阳| 长海县| 棋牌| 星子县| 平昌县| 井研县| 黄陵县| 上高县| 巴楚县| 武定县| 措勤县| 蒙山县| 秭归县| 武邑县| 红原县| 麻栗坡县| 闵行区| 西盟| 邓州市| 泽普县| 南丰县| 前郭尔| 临夏市| 白银市| 漾濞| 潢川县| 封丘县| 桂阳县| 社旗县| 庐江县| 绵竹市| 抚松县| 博客| 滁州市| 信丰县| 土默特左旗| 七台河市| 隆安县| 孝感市|