新聞中心

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://2s4d.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。在打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候要指定一種存儲(chǔ)模式,比如上例中open()方法中的參數(shù)Db.DB_BTREE就是指定以Btree模式打開(kāi)數(shù)據(jù)庫(kù)。

  Btree模式是以排序的二叉樹(shù)的方式存儲(chǔ),Hash是以線(xiàn)性哈希表的方式存儲(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,以此類(lèi)推,第100條記錄邏輯記錄號(hào)會(huì)變成99。固定的邏輯記錄號(hào)則無(wú)論數(shù)據(jù)庫(kù)如何操作都不會(huì)有變化。Queue模式下,邏輯記錄號(hào)只能是固定方式。

  Recno模式則可通過(guò)配置來(lái)選擇是采用那種類(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)開(kāi)始連續(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)

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

  二.

  1. 簡(jiǎn)介

  相信PHP的開(kāi)發(fā)人員一定不會(huì)對(duì)感到陌生,因?yàn)樵赑HP5中已經(jīng)集成了這個(gè)輕巧的內(nèi)嵌式數(shù)據(jù)庫(kù)產(chǎn)品。與Berkeley DB相比,在操作語(yǔ)句上更類(lèi)似關(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ù)專(zhuān)區(qū)

關(guān)閉