内容简介:Db4o是一个面向对象数据库,能对复杂的对象结构进行持久化,如树结构等, 并使用本地语言进行数据查询, 支持单用户模式,多用户模式。社区版本升级到全面支持Linux. 使用例子 初始化 import com.db4o.cs.Db4oC...
Db4o是一个面向对象数据库,能对复杂的对象结构进行持久化,如树结构等,
并使用本地语言进行数据查询,
支持单用户模式,多用户模式。社区版本升级到全面支持Linux.
使用例子
初始化
import com.db4o.cs.Db4oClientServer;
public class Node {
public String name;
public Node Left;
public Node Right;
}
String dbname = "node.db";
var cfg = Db4oClientServer.newServerConfiguration();
cfg.common().objectClass(Node.class).cascadeOnActivate(true);
cfg.common().objectClass(Node.class).cascadeOnUpdate(true);
cfg.common().objectClass(Node.class).cascadeOnDelete(true);
cfg.common().objectClass(Node.class).callConstructor(true);
//Port=0, Local Server.
try (var server = Db4oClientServer.openServer(cfg, dbname, 0)) {
...
}
插入对象
try (var oc = server.openClient()) {
Node root = new Node();
root.name = "Root";
root.Left = new Node();
root.Left.name = "Left";
root.Right = new Node();
root.Right.name = "Right";
root.Right.Right = new Node();
root.Right.Right.name = "Right.Right";
oc.store(root);
oc.commit();
}
使用对象模板查询非null,非0数据
try (var oc = server.openClient()) {
Node qo = new Node();
qo.name = "Root";
var ns = oc.queryByExample(qo);
var root = ns.next();
System.out.println(root.Right.Right.name);
}
Java风格查询
import com.db4o.query.Predicate;
try (var oc = server.openClient()) {
List<Node> ns = oc.query(new Predicate<Node>() {
@Override
public boolean match(Node n) {
return n.name.equals("Root");
}
});
Node root = ns.get(0);
System.out.println(root.Right.Right.name);
}
底层查询,可能适合开发自定义查询器
try (var oc = server.openClient()) {
var q = oc.query();
q.constrain(Node.class);
q.descend("name").constrain("Root").equal();
var ns = q.execute(Node.class);
}
这个版本全面升级对象管理器到 Linux 下。直接下载使用。
有高清大图,
https://iboxdb.github.io/db4o-gpl-doc/images/db4o_java_gpl.png
https://iboxdb.github.io/db4o-gpl-doc/images/db4o_gpl.png
//img1.3s78.com/codercto/5e22d81372e814208e0a7d8e4c5b5679
产品对比:
Db4o 适合操作面向对象结构,提供图形界面查询数据。
iBoxDB 适合高性能,高并发,安全数据空间的应用需求。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 面向Python,面向对象(基础)
- 面向Python,面向对象(基础3)
- <<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
- 《JavaScript面向对象精要》之六:对象模式
- 《JavaScript面向对象精要》之三:理解对象
- 面向对象的程序设计之理解对象
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。