新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式數據庫在Java中的應用[1]

        嵌入式數據庫在Java中的應用[1]

        作者: 時間:2008-04-03 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/258086.htm//關閉游標和數據文件
          iterator.close();
          dbFile.close(0);

          在運行Berkeley DB的程序時勿必在系統環境變量PATH中設置libdb41.dll和 libdb_java41.dll所在的路徑。

          4. Berkeley DB的存儲模式

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

          Btree模式是以排序的二叉樹的方式存儲,Hash是以線性哈希表的方式存儲。Queue用邏輯記錄號做為鍵值,以定長的數據為記錄值。Recno方式也以邏輯記錄號做為鍵值,但可以保存定長或變長的記錄值。這里提到的邏輯記錄號有兩種,可變的和固定的。可變邏輯記錄號會根據數據記錄的增加與刪除做相應的變化。比如在數據庫中共有100條記錄,如果刪除第80條記錄,那么第81條記錄的邏輯記錄號會自動變成80,以此類推,第100條記錄邏輯記錄號會變成99。固定的邏輯記錄號則無論數據庫如何操作都不會有變化。Queue模式下,邏輯記錄號只能是固定方式。

          Recno模式則可通過配置來選擇是采用那種類型的記錄號作為鍵值。Btree模式也可以通過設置,將可變的邏輯記錄號做為鍵值。

          這幾種存儲模式各有優缺點,要根據具體的需求來選擇。當鍵值不想用邏輯記錄號時Btree或Hash是必須的選擇。Btree方式比較適合連續的順序讀取,比如,當鍵值是時間值,如果經常有從某一時間點開始連續讀取后繼的記錄的操作,Btree是一種很好的選擇。對隨機的跳躍式讀取,Hash模式則更為恰當。Queue和Recno都以記錄號為鍵值,但前者適合先進先出的讀取方式。

          Recno則通常是存取變長文本記錄的理想存儲模式。

          5. Berkeley DB Environment的概念

          Berkeley DB Environment為一組數據庫同時提供參數設置。更為重要的是,如果要應用更高級的特性,必須要使用Environment功能,比如在想要對保存的數據進行加密存儲時。

          6. 更多特點

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

          二.

          1. 簡介

          相信PHP的開發人員一定不會對感到陌生,因為在PHP5中已經集成了這個輕巧的內嵌式數據庫產品。與Berkeley DB相比,在操作語句上更類似關系型數據庫的產品。絕大多數標準的SQL92語句SQLite都能支持。

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

          一是應用在Windows平臺下的Linux仿真程序,如MingW或Cygwin提供的make來編譯。

          二是應用MS VC平臺編譯。后者設置略有麻煩,但可仿照參考鏈接五上提供的MS VC6工程文件的樣例。應用到這個樣例的時候,要注意的是由于SQLite源代碼在不斷更新,如果直接應用樣例所提供的VC6工程文件編譯會出現一些問題,讀者要根據具體的情況稍微調整一下編譯的設置。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 如皋市| 共和县| 邻水| 兰溪市| 福清市| 东乌珠穆沁旗| 磐安县| 定日县| 军事| 镶黄旗| 正阳县| 淄博市| 革吉县| 永川市| 邻水| 枝江市| 洪泽县| 巴楚县| 册亨县| 建湖县| 格尔木市| 天津市| 民勤县| 紫金县| 来安县| 千阳县| 广德县| 晋宁县| 金湖县| 朝阳区| 蒙城县| 开远市| 连山| 驻马店市| 额尔古纳市| 许昌市| 金阳县| 德阳市| 博罗县| 大英县| 崇阳县|