大家好,又见面了,我是你们的朋友全栈君。 DB4O?
新出的OODBMS~取谐音DB for O 。一个优秀的OODBMS解决方案,它出现的定位就是为了开发嵌入式和小型应用,同HSQLDB的定位相仿。不过DB4O的的优点则是,本身是OODBMS,那么对它的操作自然就是基于OO的,同Hiberante一样,但是Hiberante是ORM解决方案,而DB4O则是原生OODBMS方案。看看下面的例子
一个同Hibernate相同的POJO,没有任何方法,也没有跟DB4O有任何耦合。

package
name.lgn.db4o.test.model;
2

3


public
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的解决方案:

package
name.lgn.db4o.test;
2

3

import
name.lgn.db4o.test.model.Person;
4

5

import
org.junit.Test;
6

7

import
com.db4o.Db4o;
8

import
com.db4o.ObjectContainer;
9

import
com.db4o.ObjectSet;
10

11


public
class
TestDB4O

{
12

13
@Test14

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 Brians36
ObjectSet brians = db.get(new Person(“Brian“, null, 0));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
存入数据用db.set(…);取出数据用db.get(…),是不是非常亲切和简单?
对于不需要使用大型DB,但又需要存储数据的时候不需要再用hibernate+hsqldb了,只需要使用DB4O,就全带了,又有简单的数据库操作,又有数据的存储,还有数据完整性的保证,简单方便,何乐不为呢?RCP开源项目著名的RSSOWL在2.0中也已经把原有的hiberante+hsqldb替换为DB4O的解决方案了。
虽然OODBMS的路还有很长,而且就现在看,和RDBMS还有很长的距离,但是从DB4O上,我们还是看到了希望。在DB4O的眼中Hibernate,jdo等等都是暂时的解决方案,对于OODBMS来说ORM本来就是不存在的东西,ORM仅仅是为了解决RDBMS到OO的映射,而OODBMS本来就是原生的,免去了中间层,免去了烦恼。
下载 db4o:这是一种用于 Java 的开源对象数据库。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162593.html原文链接:https://javaforall.net
