<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式數(shù)據(jù)庫(kù)在Java中的應(yīng)用[1]

          嵌入式數(shù)據(jù)庫(kù)在Java中的應(yīng)用[1]

          作者: 時(shí)間:2008-04-03 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/258086.htm//關(guān)閉游標(biāo)和數(shù)據(jù)文件
            iterator.close();
            dbFile.close(0);

            在運(yùn)行Berkeley DB的程序時(shí)勿必在系統(tǒng)環(huán)境變量PATH中設(shè)置libdb41.dll和 libdb_java41.dll所在的路徑。

            4. Berkeley DB的存儲(chǔ)模式

            Berkeley DB提供了四種存儲(chǔ)數(shù)據(jù)的模式:Btree,Hash,Queue和Recno。在打開數(shù)據(jù)庫(kù)的時(shí)候要指定一種存儲(chǔ)模式,比如上例中open()方法中的參數(shù)Db.DB_BTREE就是指定以Btree模式打開數(shù)據(jù)庫(kù)。

            Btree模式是以排序的二叉樹的方式存儲(chǔ),Hash是以線性哈希表的方式存儲(chǔ)。Queue用邏輯記錄號(hào)做為鍵值,以定長(zhǎng)的數(shù)據(jù)為記錄值。Recno方式也以邏輯記錄號(hào)做為鍵值,但可以保存定長(zhǎng)或變長(zhǎng)的記錄值。這里提到的邏輯記錄號(hào)有兩種,可變的和固定的??勺冞壿嬘涗浱?hào)會(huì)根據(jù)數(shù)據(jù)記錄的增加與刪除做相應(yīng)的變化。比如在數(shù)據(jù)庫(kù)中共有100條記錄,如果刪除第80條記錄,那么第81條記錄的邏輯記錄號(hào)會(huì)自動(dòng)變成80,以此類推,第100條記錄邏輯記錄號(hào)會(huì)變成99。固定的邏輯記錄號(hào)則無(wú)論數(shù)據(jù)庫(kù)如何操作都不會(huì)有變化。Queue模式下,邏輯記錄號(hào)只能是固定方式。

            Recno模式則可通過(guò)配置來(lái)選擇是采用那種類型的記錄號(hào)作為鍵值。Btree模式也可以通過(guò)設(shè)置,將可變的邏輯記錄號(hào)做為鍵值。

            這幾種存儲(chǔ)模式各有優(yōu)缺點(diǎn),要根據(jù)具體的需求來(lái)選擇。當(dāng)鍵值不想用邏輯記錄號(hào)時(shí)Btree或Hash是必須的選擇。Btree方式比較適合連續(xù)的順序讀取,比如,當(dāng)鍵值是時(shí)間值,如果經(jīng)常有從某一時(shí)間點(diǎn)開始連續(xù)讀取后繼的記錄的操作,Btree是一種很好的選擇。對(duì)隨機(jī)的跳躍式讀取,Hash模式則更為恰當(dāng)。Queue和Recno都以記錄號(hào)為鍵值,但前者適合先進(jìn)先出的讀取方式。

            Recno則通常是存取變長(zhǎng)文本記錄的理想存儲(chǔ)模式。

            5. Berkeley DB Environment的概念

            Berkeley DB Environment為一組數(shù)據(jù)庫(kù)同時(shí)提供參數(shù)設(shè)置。更為重要的是,如果要應(yīng)用更高級(jí)的特性,必須要使用Environment功能,比如在想要對(duì)保存的數(shù)據(jù)進(jìn)行加密存儲(chǔ)時(shí)。

            6. 更多特點(diǎn)

            除了最基本的插入、查詢、刪除功能以外,Berkeley DB還提供了一些特性,比如Transaction,數(shù)據(jù)加密,同步加鎖控制,錯(cuò)誤日志等功能。下面的圖片是Berkeley DB功能示意圖。

            二.

            1. 簡(jiǎn)介

            相信PHP的開發(fā)人員一定不會(huì)對(duì)感到陌生,因?yàn)樵赑HP5中已經(jīng)集成了這個(gè)輕巧的內(nèi)嵌式數(shù)據(jù)庫(kù)產(chǎn)品。與Berkeley DB相比,在操作語(yǔ)句上更類似關(guān)系型數(shù)據(jù)庫(kù)的產(chǎn)品。絕大多數(shù)標(biāo)準(zhǔn)的SQL92語(yǔ)句SQLite都能支持。

            SQLite的版權(quán)允許無(wú)任何限制的應(yīng)用,包括商業(yè)性的產(chǎn)品。在參考鏈接二上提供的SQLite官方主站上可以下載到編譯后的SQLite程序。但推薦應(yīng)用CVS工具下載最新版本的SQLite源代碼。如果在*nux平臺(tái)下,可直接用make編譯。如果在Windows平臺(tái),常用的有兩種方法,

            一是應(yīng)用在Windows平臺(tái)下的Linux仿真程序,如MingW或Cygwin提供的make來(lái)編譯。

            二是應(yīng)用MS VC平臺(tái)編譯。后者設(shè)置略有麻煩,但可仿照參考鏈接五上提供的MS VC6工程文件的樣例。應(yīng)用到這個(gè)樣例的時(shí)候,要注意的是由于SQLite源代碼在不斷更新,如果直接應(yīng)用樣例所提供的VC6工程文件編譯會(huì)出現(xiàn)一些問(wèn)題,讀者要根據(jù)具體的情況稍微調(diào)整一下編譯的設(shè)置。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();