日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

初識DB4O - 實(shí)踐-全程 - BlogJava

 chenge 2007-08-04


    DB4O?
    新出的OODBMS~取諧音DB for O 。一個優(yōu)秀的OODBMS解決方案,它出現(xiàn)的定位就是為了開發(fā)嵌入式和小型應(yīng)用,同HSQLDB的定位相仿。不過DB4O的的優(yōu)點(diǎn)則是,本身是 OODBMS,那么對它的操作自然就是基于OO的,同Hiberante一樣,但是Hiberante是ORM解決方案,而DB4O則是原生OODBMS 方案??纯聪旅娴睦?br>
一個同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ù)庫。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多