亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種通用數(shù)據(jù)庫訪問中自動(dòng)適配對(duì)象的方法

文檔序號(hào):9200399閱讀:356來源:國知局
一種通用數(shù)據(jù)庫訪問中自動(dòng)適配對(duì)象的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)應(yīng)用領(lǐng)域,涉及一種通用數(shù)據(jù)庫訪問中自動(dòng)適配對(duì)象的方法, 特別是涉及到數(shù)據(jù)庫系統(tǒng)應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)的表結(jié)構(gòu)與應(yīng)用軟件的應(yīng)用對(duì)象自動(dòng)匹 配的方法。
【背景技術(shù)】
[0002] 在電子信息系統(tǒng)設(shè)計(jì)中數(shù)據(jù)庫系統(tǒng)是不可或缺的一個(gè)重要組成部分,而數(shù)據(jù)的存 取功能則是數(shù)據(jù)庫系統(tǒng)的最基本的功能。傳統(tǒng)的查詢數(shù)據(jù)存取方法是調(diào)用數(shù)據(jù)庫專用接口 撰寫結(jié)構(gòu)化查詢語言(Structured Query Language,簡稱SQL)實(shí)現(xiàn)的,這種存取方法對(duì)軟 件開發(fā)者的數(shù)據(jù)庫基礎(chǔ)要求較高,在查詢記錄時(shí)需要根據(jù)查詢字段撰寫查詢語句,然后將 查詢結(jié)果賦值到編程語言的應(yīng)用對(duì)象中,在插入記錄、更新記錄和刪除記錄時(shí)也需要根據(jù) 編程語言的應(yīng)用對(duì)象組織SQL語句進(jìn)行寫庫,這就使得編程語言中的對(duì)象和數(shù)據(jù)庫緊密耦 合,數(shù)據(jù)庫應(yīng)用程序?qū)唧w數(shù)據(jù)庫結(jié)構(gòu)依賴性過大,當(dāng)應(yīng)用對(duì)象發(fā)生變化后需要擴(kuò)展或增 加新的查詢,軟件的可擴(kuò)充性和通用性不高。
[0003] 目前,國內(nèi)外學(xué)者通過對(duì)數(shù)據(jù)庫的數(shù)據(jù)目錄的研宄,提出了基于數(shù)據(jù)字典實(shí)現(xiàn)的 通用數(shù)據(jù)庫存取技術(shù),但沒有實(shí)現(xiàn)通過數(shù)據(jù)字典將數(shù)據(jù)庫對(duì)象與編程語言應(yīng)用對(duì)象進(jìn)行對(duì) 象化關(guān)聯(lián),另外業(yè)界也有通過序列化的方法實(shí)現(xiàn)數(shù)據(jù)庫表和編程語言應(yīng)用對(duì)象數(shù)據(jù)結(jié)構(gòu)對(duì) 象化的成功案例,但是序列化的實(shí)現(xiàn)方法雖然解決了數(shù)據(jù)庫表與應(yīng)用對(duì)象的自動(dòng)對(duì)象化問 題,但必須為每張表單獨(dú)設(shè)計(jì)一套存取接口,后期維護(hù)工程浩大,特別是數(shù)據(jù)庫系統(tǒng)比較龐 大或者變化比較頻繁的應(yīng)用場景。

【發(fā)明內(nèi)容】

[0004] 發(fā)明目的:本發(fā)明的目的在于解決數(shù)據(jù)庫應(yīng)用軟件的可擴(kuò)充性和通用性問題,提 供了一種通用數(shù)據(jù)庫訪問中數(shù)據(jù)查詢、數(shù)據(jù)存儲(chǔ)的自動(dòng)適配對(duì)象的方法,在數(shù)據(jù)庫存取數(shù) 據(jù)時(shí)通過本發(fā)明將數(shù)據(jù)庫表與編程語言應(yīng)用對(duì)象自動(dòng)適配,提高數(shù)據(jù)庫應(yīng)用軟件的可擴(kuò)充 性和通用性。
[0005] 為了解決上述技術(shù)問題,本發(fā)明公開了一種通用數(shù)據(jù)庫訪問中數(shù)據(jù)查詢、數(shù)據(jù)存 儲(chǔ)(包括數(shù)據(jù)庫插入、數(shù)據(jù)庫更新和數(shù)據(jù)庫刪除操作)的自動(dòng)適配對(duì)象的方法,這種自動(dòng)適 配對(duì)象方法的核心是根據(jù)數(shù)據(jù)字典對(duì)數(shù)據(jù)庫請(qǐng)求中的編程語言應(yīng)用對(duì)象進(jìn)行按字節(jié)存取,

【發(fā)明內(nèi)容】
包括根據(jù)數(shù)據(jù)庫數(shù)據(jù)目錄生成的數(shù)據(jù)字典構(gòu)造與數(shù)據(jù)庫表對(duì)應(yīng)的編程語言數(shù)據(jù) 對(duì)象,通過構(gòu)造的編程語言數(shù)據(jù)對(duì)象實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問,所述對(duì)數(shù)據(jù)庫的訪問包括數(shù)據(jù) 庫表與編程語言數(shù)據(jù)結(jié)構(gòu)的對(duì)象化、數(shù)據(jù)庫訪問請(qǐng)求自動(dòng)適配對(duì)象和數(shù)據(jù)庫查詢結(jié)果自動(dòng) 適配對(duì)象,通過對(duì)象化在數(shù)據(jù)庫與應(yīng)用對(duì)象之間建立了"動(dòng)態(tài)耦合"關(guān)系,當(dāng)數(shù)據(jù)庫設(shè)計(jì)變 化后可以通過自動(dòng)化的方法以重新生成數(shù)據(jù)字典和編程語言數(shù)據(jù)結(jié)構(gòu)的方式對(duì)其進(jìn)行重 新對(duì)象化。
[0006] 其中,數(shù)據(jù)庫表與編程語言數(shù)據(jù)結(jié)構(gòu)的對(duì)象化包括如下步驟:
[0007] 步驟1-1,根據(jù)數(shù)據(jù)庫的數(shù)據(jù)目錄提取數(shù)據(jù)庫的用戶數(shù)據(jù)字典;
[0008] 步驟1-2,根據(jù)數(shù)據(jù)庫的數(shù)據(jù)目錄提取數(shù)據(jù)庫的表或視圖數(shù)據(jù)字典,并將其與用戶 數(shù)據(jù)字典關(guān)聯(lián);
[0009] 步驟1-3,根據(jù)數(shù)據(jù)庫的數(shù)據(jù)目錄提取數(shù)據(jù)庫的字段數(shù)據(jù)字典,并將其與表或視圖 數(shù)據(jù)字典關(guān)聯(lián);
[0010] 步驟1-4,根據(jù)數(shù)據(jù)庫的表或視圖數(shù)據(jù)字典和字段數(shù)據(jù)字典,以及數(shù)據(jù)庫字段類型 與編程語言數(shù)據(jù)類型的對(duì)應(yīng)關(guān)系,生成與數(shù)據(jù)庫對(duì)象對(duì)應(yīng)的編程語言數(shù)據(jù)結(jié)構(gòu),根據(jù)生成 的編程語言數(shù)據(jù)結(jié)構(gòu)構(gòu)造編程語言數(shù)據(jù)對(duì)象。
[0011] 數(shù)據(jù)庫表與編程語言數(shù)據(jù)結(jié)構(gòu)的對(duì)象化采用數(shù)據(jù)字典技術(shù)對(duì)編程語言的數(shù)據(jù)結(jié) 構(gòu)進(jìn)行定義,數(shù)據(jù)字典分為用戶數(shù)據(jù)字典、表或視圖數(shù)據(jù)字典和字段數(shù)據(jù)字典,三類數(shù)據(jù)字 典生成后以文件的形式存儲(chǔ),數(shù)據(jù)字典文件分為兩部分:文件頭和數(shù)據(jù)字典內(nèi)容,三類數(shù)據(jù) 字典的文件頭的格式相同,數(shù)據(jù)字典文件頭包括文件名、文件長度、記錄個(gè)數(shù)、單個(gè)記錄的 長度,校驗(yàn)碼和記錄起始位置的偏移量,三類數(shù)據(jù)字典文件內(nèi)容包括:
[0012] (a)用戶數(shù)據(jù)字典:包括用戶名、用戶ID和用戶下的表和視圖的總數(shù)目;
[0013] (b)表或視圖數(shù)據(jù)字典:包括表名或視圖名、用戶的ID、表1D或視圖ID、表或視圖 的字段數(shù)目、表的主鍵字段數(shù)目和表的主鍵字段的索引;
[0014] (c)字段數(shù)據(jù)字典:包括字段名、用戶ID、表或視圖ID、字段ID、字段類型和字段長 度;
[0015] 其中,數(shù)據(jù)字典中的字段類型是與數(shù)據(jù)庫字段類型對(duì)應(yīng)的編程語言中的類型,數(shù) 據(jù)庫字段類型中的整數(shù)對(duì)應(yīng)編程語言的整數(shù)、浮點(diǎn)數(shù)對(duì)應(yīng)編程語言的浮點(diǎn)數(shù)、字符串對(duì)應(yīng) 編程語言的字符數(shù)組、時(shí)間對(duì)應(yīng)編程語言的時(shí)間結(jié)構(gòu)體、二進(jìn)制大字段對(duì)應(yīng)編程語言的由 一個(gè)長度字段和一個(gè)指針組成的結(jié)構(gòu)體,字段數(shù)據(jù)字典中的字段長度為編程語言中的數(shù)據(jù) 類型長度。
[0016] 當(dāng)數(shù)據(jù)庫結(jié)構(gòu)變化時(shí),通過更新數(shù)據(jù)字典和編程語言的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)數(shù)據(jù)庫與 編程語言數(shù)據(jù)結(jié)構(gòu)的重新適配,數(shù)據(jù)字典通過自動(dòng)化生成,編程語言的數(shù)據(jù)結(jié)構(gòu)也通過自 動(dòng)化編程技術(shù)自動(dòng)生成。
[0017] 編程語言的數(shù)據(jù)結(jié)構(gòu)定義中按照數(shù)據(jù)庫字段定義順序定義,且設(shè)置字節(jié)對(duì)齊方式 為單字節(jié)對(duì)齊,并將編程語言的數(shù)據(jù)對(duì)象根據(jù)數(shù)據(jù)字典編碼成統(tǒng)一的數(shù)據(jù)庫訪問請(qǐng)求,使 數(shù)據(jù)庫訪問請(qǐng)求泛化,從而可以實(shí)現(xiàn)統(tǒng)一的數(shù)據(jù)庫訪問接口。
[0018] 數(shù)據(jù)庫訪問請(qǐng)求自動(dòng)適配對(duì)象包括如下步驟:
[0019] 步驟2-1,根據(jù)編程語言數(shù)據(jù)對(duì)象構(gòu)建數(shù)據(jù)庫訪問請(qǐng)求;
[0020] 步驟2-2,根據(jù)數(shù)據(jù)庫訪問請(qǐng)求中的數(shù)據(jù)庫用戶名、表名或視圖名查詢數(shù)據(jù)字典;
[0021] 步驟2-3,獲取到指定用戶、指定表或視圖以及表或視圖所有字段的數(shù)據(jù)字典;
[0022] 步驟2-4,根據(jù)數(shù)據(jù)字典編碼編程語言數(shù)據(jù)對(duì)象,使數(shù)據(jù)庫訪問請(qǐng)求泛化;
[0023] 步驟2-5,使用統(tǒng)一接口處理泛化后的數(shù)據(jù)庫訪問請(qǐng)求,根據(jù)數(shù)據(jù)字典將編程語言 數(shù)據(jù)對(duì)象還原,獲取到每個(gè)成員的值;
[0024] 步驟2-6,將還原后的編程語言數(shù)據(jù)對(duì)象的數(shù)據(jù)成員與數(shù)據(jù)庫表或視圖的字段自 動(dòng)適配;
[0025] 步驟2-7,構(gòu)造數(shù)據(jù)庫方法訪問數(shù)據(jù)庫。
[0026] 數(shù)據(jù)庫查詢結(jié)果自動(dòng)適配對(duì)象包括如下步驟:
[0027] 步驟3-1,查詢數(shù)據(jù)字典;
[0028] 步驟3-2,獲取到數(shù)據(jù)字典;
[0029] 步驟3-3,根據(jù)數(shù)據(jù)字典獲取查詢結(jié)果輸出對(duì)象的數(shù)據(jù)結(jié)構(gòu);
[0030] 步驟3-4,逐個(gè)查詢數(shù)據(jù)庫的字段值;
[0031] 步驟3-5,根據(jù)建立的數(shù)據(jù)庫表或視圖的字段與編程語言數(shù)據(jù)結(jié)構(gòu)成員的對(duì)象化 關(guān)系自動(dòng)適配。
[0032] 有益效果:本發(fā)明基于數(shù)據(jù)字典技術(shù)提出了一種通用數(shù)據(jù)庫訪問中的自動(dòng)適配對(duì) 象的方法,可以完成數(shù)據(jù)庫查詢、插入、更新和刪除記錄時(shí)數(shù)據(jù)庫表結(jié)構(gòu)與編程語言數(shù)據(jù)對(duì) 象的自動(dòng)適配,可以在數(shù)據(jù)庫應(yīng)用中通過編程語言數(shù)據(jù)對(duì)象訪問數(shù)據(jù)庫,基于這種方法提 供的數(shù)據(jù)庫訪問接口無需數(shù)據(jù)庫基礎(chǔ)(不需要寫SQL語句)、對(duì)所有數(shù)據(jù)庫表使用統(tǒng)一的訪 問方式,解決了數(shù)據(jù)庫應(yīng)用程序?qū)唧w數(shù)據(jù)庫結(jié)構(gòu)依賴過大,具有開發(fā)容易、開發(fā)的軟件可 復(fù)用程度和可擴(kuò)充性高等優(yōu)點(diǎn),是實(shí)現(xiàn)對(duì)象化數(shù)據(jù)庫通用訪問的一種關(guān)鍵技術(shù)。通過本發(fā) 明方法實(shí)現(xiàn)對(duì)象化的數(shù)據(jù)庫訪問,可以直接進(jìn)行通用的對(duì)象化數(shù)據(jù)庫應(yīng)用軟件開發(fā)或開發(fā) 商用的對(duì)象化數(shù)據(jù)庫訪問中間件軟件。
【附圖說明】
[0033] 下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和 /或其他方面的優(yōu)點(diǎn)將會(huì)變得更加清楚。
[0034] 圖1為本發(fā)明數(shù)據(jù)字典結(jié)構(gòu)及關(guān)聯(lián)關(guān)系示意圖。
[0035] 圖2為表T和編程語言數(shù)據(jù)結(jié)構(gòu)S的對(duì)象化示意圖。
[0036] 圖3為編程語言數(shù)據(jù)結(jié)構(gòu)S的內(nèi)存存儲(chǔ)示意圖。
[0037] 圖4為數(shù)據(jù)庫訪問請(qǐng)求自動(dòng)適配對(duì)象的流程圖。
[0038] 圖5為數(shù)據(jù)庫查詢結(jié)果自動(dòng)適配對(duì)象的流程圖。
【具體實(shí)施方式】
[0039] 本發(fā)明公開了一種通用數(shù)據(jù)庫訪問中數(shù)據(jù)查詢、數(shù)據(jù)存儲(chǔ)(包括數(shù)據(jù)庫插入、數(shù) 據(jù)庫更新和數(shù)據(jù)庫刪除操作)的自動(dòng)適配對(duì)象的方法,
【發(fā)明內(nèi)容】
包括數(shù)據(jù)庫表與編程語言 數(shù)據(jù)結(jié)構(gòu)的對(duì)象化、數(shù)據(jù)庫訪問請(qǐng)求自動(dòng)適配對(duì)象和數(shù)據(jù)庫查詢結(jié)果自動(dòng)適配對(duì)象,實(shí)施 方式如下:
[0040] 1.數(shù)據(jù)庫表與編程語言數(shù)據(jù)結(jié)構(gòu)的對(duì)象化
[0041] 本發(fā)明的自動(dòng)適配基于自建的數(shù)據(jù)字典技術(shù),這種數(shù)據(jù)字典可以從數(shù)據(jù)庫系統(tǒng)的 數(shù)據(jù)目錄中提取,數(shù)據(jù)字典分為用戶數(shù)據(jù)字典、表或視圖數(shù)據(jù)字典和字段數(shù)據(jù)字典三類,三 類數(shù)據(jù)字典生成后以文件的形式存儲(chǔ),在應(yīng)用程序啟動(dòng)時(shí)加載到內(nèi)存中,數(shù)據(jù)字典文件分 為兩部分:文件頭和數(shù)據(jù)字典內(nèi)容,三類字典的文件頭的格式相同,包括文件名、文件長度、 記錄個(gè)數(shù)、單個(gè)記錄的長度,校驗(yàn)碼和記錄起始位置的偏移量(跳過文件頭的第一條字典 記錄的文件偏移量),三類數(shù)據(jù)字典的內(nèi)容包括:
[0042]
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1