db4o java_DB4O 社区版 8.1.3 发布,面向对象数据库[通俗易懂]

db4o java_DB4O 社区版 8.1.3 发布,面向对象数据库[通俗易懂]Db4o是一个面向对象数据库,能对复杂的对象结构进行持久化,如树结构等,并使用本地语言进行数据查询,支持单用户模式,多用户模式。社区版本升级到全面支持Linux.使用例子初始化importcom.db4o.cs.Db4oClientServer;publicclassNode{publicStringname;publicNodeLeft;publicNodeRight;}St…

大家好,又见面了,我是你们的朋友全栈君。

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 ns = oc.query(new Predicate() {

@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下。直接下载使用。

af641a674082b1c52307d7c285e28aa2.png

111bd291360286e275ce583e8203df27.png

5e22d81372e814208e0a7d8e4c5b5679.png

产品对比:

Db4o 适合操作面向对象结构,提供图形界面查询数据。

iBoxDB 适合高性能,高并发,安全数据空间的应用需求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162611.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 下午3:36
下一篇 2022年7月21日 下午3:46


相关推荐

  • 正则表达式Python_python正则表达式匹配字符串

    正则表达式Python_python正则表达式匹配字符串转载:https://www.jianshu.com/p/5295c5988b7f一、正则表达式语法(一)字符与字符类1、特殊字符:\.^$?+*{}[]()|以上特殊字符要想使用字面值,必须使用\进行转义。2、字符类包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A…

    2022年10月3日
    5
  • 天翼云推出安全加固版OpenClaw,激活成功教程“养龙虾”安全痛点

    天翼云推出安全加固版OpenClaw,激活成功教程“养龙虾”安全痛点

    2026年3月13日
    2
  • Android与服务端使用Https加密通信

    Android与服务端使用Https加密通信

    2022年3月7日
    49
  • DICOM影像中的窗宽窗位

    DICOM影像中的窗宽窗位1.为什么有窗宽窗位?医学图像领域的关键技术窗技术,是CT检查中用以观察不同密度的正常组织或病变的一种显示技术,包括窗宽(windowwidth)和窗位(windowlevel)。由于各种组织结构或病变具有不同的CT值,因此想要显示某一组织结构细节时,应该选择适合观察该组织或病变的窗宽和窗位,以获得最佳显示。2.窗宽窗宽是CT图像上显示的CT值范围,在此CT值范围内的组织和病变均

    2022年6月29日
    57
  • pycharm使用conda环境_anaconda运行python

    pycharm使用conda环境_anaconda运行python基础环境是ubuntu的。之前一直使用windows系统,新公司需要使用ubuntu环境,所以从头开始搭建一个python运行的环境。主要的步骤可以记为如下:1.安装anaconda2.配置一个conda的python36环境3.安装pycharm4.在pycharm中使用2中配置的环境作为项目的解释器5.其他一些注意事项1.安装anaconda1.2安装下载的安装包,我下载的最新版…

    2022年8月29日
    6
  • 阿里云新手自营建站指南

    阿里云新手自营建站指南对于一个建站新手来讲 最重要的莫过于 2 件事 1 时间效率 2 性价比换句话讲 对于非专业选手 在整个建站过程 如何省时省力 用相对简单的方式 花更少的钱建好网站是关键 基于上述 给大家带来一版适合新手的建站指南 供大家参考 一 注册域名 域名就是人们常说的 网址 好比一个网站的门牌号 不可或缺 域名注册 注意事项 1 域名具有唯一性 同

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号