大夢想家

          5年開發(fā)工程師,2年實施經(jīng)理,X年售前顧問,......
          數(shù)據(jù)加載中……
          初識DB4O
              DB4O?
              新出的OODBMS~取諧音DB for O 。一個優(yōu)秀的OODBMS解決方案,它出現(xiàn)的定位就是為了開發(fā)嵌入式和小型應(yīng)用,同HSQLDB的定位相仿。不過DB4O的的優(yōu)點則是,本身是OODBMS,那么對它的操作自然就是基于OO的,同Hiberante一樣,但是Hiberante是ORM解決方案,而DB4O則是原生OODBMS方案。看看下面的例子

          一個同Hibernate相同的POJO,沒有任何方法,也沒有跟DB4O有任何耦合。
           1package name.lgn.db4o.test.model;
           2
           3public class Person {
           4
           5    private String firstName;
           6
           7    private String lastName;
           8
           9    private int age;
          10
          11    public Person(String firstName, String lastName, int age) {
          12        this.firstName = firstName;
          13        this.lastName = lastName;
          14        this.age = age;
          15    }

          16
          17    public String getFirstName() {
          18        return firstName;
          19    }

          20
          21    public void setFirstName(String value) {
          22        firstName = value;
          23    }

          24
          25    public String getLastName() {
          26        return lastName;
          27    }

          28
          29    public void setLastName(String value) {
          30        lastName = value;
          31    }

          32
          33    public int getAge() {
          34        return age;
          35    }

          36
          37    public void setAge(int value) {
          38        age = value;
          39    }

          40
          41}

          42

          在看,DB4O的解決方案:
           1package name.lgn.db4o.test;
           2
           3import name.lgn.db4o.test.model.Person;
           4
           5import org.junit.Test;
           6
           7import com.db4o.Db4o;
           8import com.db4o.ObjectContainer;
           9import com.db4o.ObjectSet;
          10
          11public class TestDB4O {
          12
          13    @Test
          14    public void testDB() {
          15        ObjectContainer db = null;
          16        try {
          17            db = Db4o.openFile("persons.data");
          18
          19            Person brian = new Person("Brian""Goetz"39);
          20            Person jason = new Person("Jason""Hunter"35);
          21            Person clinton = new Person("Brian""Sletten"38);
          22            Person david = new Person("David""Geary"55);
          23            Person glenn = new Person("Glenn""Vanderberg"40);
          24            Person neal = new Person("Neal""Ford"39);
          25
          26            db.set(brian);
          27            db.set(jason);
          28            db.set(clinton);
          29            db.set(david);
          30            db.set(glenn);
          31            db.set(neal);
          32
          33            db.commit();
          34
          35            // Find all the Brians
          36            ObjectSet brians = db.get(new Person("Brian"null0));
          37            while (brians.hasNext())
          38                System.out.println(brians.next());
          39
          40        }
           catch (Exception e) {
          41            e.printStackTrace();
          42        }
           finally {
          43            if (db != null)
          44                db.close();
          45        }

          46
          47    }

          48}

          49
          存入數(shù)據(jù)用db.set(...);取出數(shù)據(jù)用db.get(...),是不是非常親切和簡單?
              對于不需要使用大型DB,但又需要存儲數(shù)據(jù)的時候不需要再用hibernate+hsqldb了,只需要使用DB4O,就全帶了,又有簡單的數(shù)據(jù)庫操作,又有數(shù)據(jù)的存儲,還有數(shù)據(jù)完整性的保證,簡單方便,何樂不為呢?RCP開源項目著名的RSSOWL在2.0中也已經(jīng)把原有的hiberante+hsqldb替換為DB4O的解決方案了。
              雖然OODBMS的路還有很長,而且就現(xiàn)在看,和RDBMS還有很長的距離,但是從DB4O上,我們還是看到了希望。在DB4O的眼中Hibernate,jdo等等都是暫時的解決方案,對于OODBMS來說ORM本來就是不存在的東西,ORM僅僅是為了解決RDBMS到OO的映射,而OODBMS本來就是原生的,免去了中間層,免去了煩惱。

          下載 db4o:這是一種用于 Java 的開源對象數(shù)據(jù)庫。

          客戶虐我千百遍,我待客戶如初戀!

          posted on 2007-06-10 11:15 阿南 閱讀(1836) 評論(11)  編輯  收藏 所屬分類: DB4O

          評論

          # re: 初識DB4O 2007-06-10 11:42 itkui

          不錯,現(xiàn)在輕量級框架越來越火了。
            回復(fù)  更多評論    

          # re: 初識DB4O 2007-06-10 16:42 Pande

          db4o是不錯,可惜他的License不夠友好
            回復(fù)  更多評論    

          # re: 初識DB4O 2007-06-10 17:18 阿南

          確實限制不少,是一家開源的公司做的~畢竟人家也是要吃飯的啊~
            回復(fù)  更多評論    

          # re: 初識DB4O 2007-07-25 16:11 kujioon

          不錯,但是它是數(shù)據(jù)是存儲在哪兒呢?
            回復(fù)  更多評論    

          # re: 初識DB4O 2007-07-25 16:12 kujioon

          persons.data這是一個文件,這個名字有什么約定嗎,文件存儲在哪兒?
            回復(fù)  更多評論    

          # re: 初識DB4O 2007-07-25 19:44 阿南

          存在本地,其實就是本地一份文件!文件名沒有什么限制
            回復(fù)  更多評論    

          # re: 初識DB4O 2011-01-08 08:38 replica watch

          存在本地,其實就是本地一份文件!文件名沒有什么限制
            回復(fù)  更多評論    

          # shox nz 2011-06-09 17:21 shox nz

          that's good,
            回復(fù)  更多評論    

          # Christian Louboutin Platform[未登錄] 2011-09-02 13:45 yoyo

          it is a interesting one.
            回復(fù)  更多評論    

          # Christian Louboutin Platform[未登錄] 2011-09-02 13:46 yoyo

          why is so?
            回復(fù)  更多評論    

          # re: 初識DB4O 2013-01-18 11:13 replica montblanc watches

          存在本地,其實就是本地一份文件!文件名沒有什么限制
            回復(fù)  更多評論    

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大英县| 康定县| 江山市| 巩义市| 孝感市| 辽中县| 河间市| 慈利县| 佛冈县| 台湾省| 镇坪县| 丹东市| 靖安县| 雅安市| 永宁县| 报价| 芒康县| 北辰区| 长治市| 如皋市| 德昌县| 库尔勒市| 周口市| 永胜县| 昭通市| 富蕴县| 右玉县| 武隆县| 全南县| 平山县| 从化市| 高唐县| 佛学| 万源市| 丰镇市| 屯昌县| 新巴尔虎左旗| 图木舒克市| 江安县| 怀柔区| 平顺县|