日韩精品高清自在线,国产女人18毛片水真多1,欧美成人区,国产毛片片精品天天看视频,a毛片在线免费观看,午夜国产理论,国产成人一区免费观看,91网址在线播放
公務員期刊網 論文中心 正文

多類型數據庫存儲及訪問實現

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了多類型數據庫存儲及訪問實現范文,希望能給你帶來靈感和參考,敬請閱讀。

多類型數據庫存儲及訪問實現

摘要:軟件結構主要包括B/S結構、C/S結構等,無論哪種結構的軟件,數據庫應用占有很大的比例,常用的數據庫包括MySQL、Oracle等多種類型,針對這一特點,介紹了多種類型數據庫存儲訪問實現方法。

關鍵詞:數據庫;多類型;多態性;抽象

工廠軟件結構主要包括B/S結構、C/S結構等。B/S結構的軟件主要應用于消費、OA、ERP等方面;C/S結構的軟件主要應用于工業控制、電力監控等行業軟件。無論哪種結構的軟件,數據庫應用占有很大的比例。常用的數據庫包括SQLlite、MySQL、Oracle和SQLServer等,數據庫的訪問技術有ODBC、ADO、JDBC和動態鏈接庫等,軟件運行環境包括嵌入式系統、Windows和Lin-ux等。這就需要提供一個數據庫接口技術,該接口技術能滿足多種類型數據庫,能運行在多種類型的操作系統上。該接口的提供具有很重要的意義:程序員不需要過多的關注各種數據庫訪問技術,更多地關注在實際的業務邏輯上;可以用在不同的應用軟件系統中,使得代碼的復用性高。

1接口設計

數據庫軟件包括SQLlite、MySQL、Oracle和SQLServ-er等,數據庫的訪問技術有ODBC、ADO、JDBC和動態鏈接庫等,考慮到JDBC只能用于Java,ODBC和A-DO在嵌入式系統中并不支持。而SQLlite提供了開源代碼用于對數據庫進行存儲與訪問,MySQL和Oracle等數據庫提供了不同操作系統的動態鏈接庫和頭文件用于對數據庫進行存儲與訪問。因此,為了適應不同類型數據庫軟件和不同類型操作系統的要求,本接口使用動態鏈接庫的訪問技術對數據庫數據庫進行存儲與訪問。無論是哪種數據庫,訪問接口均需要對數據庫進行連接、查詢、插入、刪除和關閉等操作,而SQLLite、MySQL等數據庫又有各自的特性。根據這個特點,就自然想到了使用抽象工廠和C++的多態性實現數據庫的訪問接口。定義基類TDBAccessBase實現數據庫訪問,定義TDBAccessSQLlite繼承基類用于訪問SQLlite數據庫。用同樣方法定義子類用于訪問MySQL、Oracle等數據庫。數據庫的訪問設計已經可以滿足訪問數據庫的要求。但是應用程序在使用接口時需要根據不同的數據庫類型創建不同的子類的對象,這不能滿足代碼的復用性高的要求。因此,定義TDBInstanceBase實現訪問實例的基類,在此基類中包含訪問接口基類TDBAccessBase的對象,在構造函數中傳入數據庫類型,再根據傳入的數據庫類型創建不同的子類。定義TDBInstanceTable-Name,TableName對應數據庫中的表名稱,該類繼承訪問實例的基類TDBInstanceBase。他們之間的關系圖如圖1所示。在進行數據庫的訪問完成后,每種類型的數據庫會返回不同的結果集,如果在應用程序調用數據接口后也返回不同的數據集,就不能在應用程序中屏蔽每種數據庫的差異。為了解決這個問題,在數據庫存儲和訪問接口中將返回的結果集的記錄讀出并保存在內存中,供應用程序調用。

2訪問接口實現

定義枚舉TDBType變量用于標識數據庫的類型。TDBType的定義如下:定義結構TDBConfig,該結構包括的屬性有host、port、user、passwd、dbName和dbPath。TDBConfig具體定義如下:TDBAccessBase中實現對數據庫的打開、關閉、查詢和定位等操作的虛函數;定義curRow用于標識數據庫讀取的當前位置;還定義了結構TRowData和TTable-Data的對象,用于將返回的結果集的記錄保存。TD-BAccessBase的聲明如下:TDBAccessMySQL對MySQL數據庫的操作,是TD-BAccessBase的子類,在該類中調用MySQL提供的動態鏈接庫,具體實現數據庫的打開、關閉、查詢和定位等功能。聲明如下:SQLlite、Oracle等數據庫采用類似于對MySQL定義的方法實現。

3實例接口實現

在實例基類TDBInstanceBase中定義了訪問接口的基類TDBAccessBase的對象指針dbAccess,實例基類的構造函數傳入數據庫的配置和類型,構造函數根據數據庫的類型創建具體數據庫訪問接口的對象。實例基類中對數據庫的打開、關閉、查詢和定位等方法就是調用對象dbAccess中對應的方法。實例基類的聲明如下:字段用戶編號和用戶名稱,則定義結構TUserTable,在TUserTable中包含兩個屬性Number和Name。則用戶表的實例聲明如下:

4結語

采用抽象工廠和多態性接口設計模式,使得數據庫的訪問代碼與應用程序進行了分離,減少了它們之間的耦合性,有較好的重用性和較高的效率。

參考文獻

[1]鄢濤,趙衛東,周曉清.基于C語言訪問MySQL數據庫的研究與實現[J].成都大學學報(自然科學版),2017,36(2):161-164.

[2]艾志剛,李丹.數據庫訪問設計[J].內燃機與配件,2017,10:95-97.

[3]祝玲.C語言訪問數據庫[J].計算機光盤軟件與應用,2012,14:181-182.

作者:薛建中 單位:南京藍人電力科技有限公司

99久久国产福利自产拍| 又大又长粗又爽又黄少妇视频| 日本一区二区国产高清在线播放| av天堂资源网在线播放| 欧美在线综合视频| 中文字幕永久在线看| 亚洲男人的天堂视频| 国产欧美日韩综合| 国产l精品国产亚洲区久久 | 国产乱人伦av麻豆网| 巨胸喷奶水www视频网站| 国产精品厕所| 成人免费区一区二区三区| 人人爽人人片人人片av| 牲欲强的熟妇农村老妇女视频| 欧美xxxxx高潮喷水麻豆 | 亚洲色av天天天天天天| 亚洲爆乳无码专区| 少妇人妻精品一区二区三区| 四虎永久在线精品免费网站| 亚洲高清毛片一区二区| 51午夜精品免费视频| 成人片黄网站色大片免费毛片 | 午夜成人无码福利免费视频| 日本sm/羞辱/调教/捆绑视频| 午夜伦情电午夜伦情电影| 亚洲精品无码不卡| 久久超碰精品一夜七次郎| 亚洲a级片在线观看| 国产偷2018在线观看午夜| 九月丁香婷婷综合在线| 久久精品中文字幕少妇| 国产中文视频| 中国老太老肥熟女视频 | 国产午夜影视大全免费观看| 久久精品国产一区二区三区| 国产精品永久免费| 777午夜福利理伦电影网| 一边啪啪一边呻吟av夜夜嗨 | 国产精品国产精品偷麻豆| 玩两个丰满老熟女|