新聞中心

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

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

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

        本文引用地址:http://www.104case.com/article/258086.htm

        Berkeley DB每一個記錄都有一個鍵值和對應的數據值,而鍵值和數據必須是類com.sleepycat.db.Dbt的對象或其子類的對象。Dbt提供了一些方法可以將byte數組或Object對象保存到Dbt的對象中去。比如,Dbt類中的set_data(byte[])或set_object(Object)方法。注意到目前Berkeley DB中的 API命名方法并不符合的命名規范,比如set_data()方法應該命名為setData()方法。Berkeley DB許諾在下一個版本中會提供符合命名規范的 API。

          Berkeley DB對任何存入的數據都是直接原樣存儲到數據文件中去,無論其是二進制數據還是ASCII或Unicode等編碼的文本。通??梢岳眠@一特性和Java串行化的概念方便的進行數據的存取。例如聲明一個類
          public class AccountInfo implements Serializable{
            //帳戶信息
            public String loginName;
            public String password;
            public boolean auotLogin;
          }

          在這個AccountInfo類中僅僅包含了數據項的定義。我們完全可以將這個類看作數據庫的表中字段定義??梢杂肂erkeley DB保存AccountInfo對象的串行化二進制數據,以此來保存這個對象中的變量值。在操作中,先對Dbt的對象調用set_object(AccountInfo)方法,而后把這個Dbt對象作為一條紀錄保存到表中。當然,我們也可以應用繼承Dbt類的方法來完成對數據的保存。

          下面這段簡單代碼演示如何將數據存入到數據庫中,然后再用游標對象瀏覽全部數據。

          //注意,下面的程序的忽略了對異常處理,寫入數據初始化等等一些代碼,請在適當修改后再編
          //譯運行它
          Db dbFile = null;
          //生成Db對象
          dbFile = new Db(null, 0);
          //用BTree方式打開數據庫,庫文件是在c:/temp下的mydata.db文件,表名是employee
          //如果數據庫不存在,則自動生成一個新的數據庫。
          dbFile.open(null,c:tempmydata.db,employee,Db.DB_BTREE,
          Db.DB_CREATE,0);
          Dbt key = new Dbt();
          Dbt data = new Dbt();
          //向庫文件中插入一條數據,如果已經存在,打印出錯信息
          if (dbFile.put(null,key, data, Db.DB_APPEND) == Db.DB_KEYEXIST) {
          System.out.println(Key already exists.);
          }
          //關閉數據文件
          dbFile.close(0);
          //重新打開數據文件
          dbFile = new Db(null, 0);
          dbFile.open(null, c:tempmydata.db, employee, Db.DB_UNKNOWN, 0, 0644);
          // 聲明一個數據庫游標Dbc對象iterator
          Dbc iterator = dbFile.cursor(null, 0);
          // 遍歷整個表
          Dbt key = new Dbt();
          while (iterator.get(key, data, Db.DB_NEXT) == 0)
          {
            System.out.println(reading);
          }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 迭部县| 湖北省| 北辰区| 泰和县| 桃园市| 淄博市| 商水县| 会宁县| 云和县| 茌平县| 淮滨县| 汝南县| 绩溪县| 安化县| 郯城县| 济宁市| 九江县| 潜江市| 交口县| 香港| 嘉峪关市| 宝鸡市| 汨罗市| 望都县| 渝北区| 台州市| 阜康市| 麻城市| 石嘴山市| 云梦县| 道孚县| 阿克陶县| 勐海县| 准格尔旗| 建始县| 聂荣县| 东乌珠穆沁旗| 新龙县| 伊吾县| 鹿泉市| 进贤县|