中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        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.antipu.com.cn/article/258086.htm

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

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

          在這個(gè)AccountInfo類(lèi)中僅僅包含了數(shù)據(jù)項(xiàng)的定義。我們完全可以將這個(gè)類(lèi)看作數(shù)據(jù)庫(kù)的表中字段定義??梢杂肂erkeley DB保存AccountInfo對(duì)象的串行化二進(jìn)制數(shù)據(jù),以此來(lái)保存這個(gè)對(duì)象中的變量值。在操作中,先對(duì)Dbt的對(duì)象調(diào)用set_object(AccountInfo)方法,而后把這個(gè)Dbt對(duì)象作為一條紀(jì)錄保存到表中。當(dāng)然,我們也可以應(yīng)用繼承Dbt類(lèi)的方法來(lái)完成對(duì)數(shù)據(jù)的保存。

          下面這段簡(jiǎn)單代碼演示如何將數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中,然后再用游標(biāo)對(duì)象瀏覽全部數(shù)據(jù)。

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



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉