java db4o,DB4O–java对象数据库[通俗易懂]

java db4o,DB4O–java对象数据库[通俗易懂]特点直接存储java对象,抛弃对象映射的繁琐可以使用简单的查询语句致命缺点与java语言绑定demogitee地址https://gitee.com/ichiva/db4o-demo.git主要依赖org.fudaa.com.db4odb4o-java55.5.1编写测试用例官方实体类@DatapublicclassCar{privateIntegerid;privateString…

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

特点

直接存储java对象,抛弃对象映射的繁琐

可以使用简单的查询语句

致命缺点

与java语言绑定

demo

gitee地址

https://gitee.com/ichiva/db4o-demo.git

主要依赖

org.fudaa.com.db4o

db4o-java5

5.5.1

编写测试用例

官方实体类

@Data

public class Car {

private Integer id;

private String name;

}

@Data

public class People {

private Integer id;

private String name;

private String address;

private List cars;

}

连接数据

private ObjectContainer container;

@Before

public void before(){

this.container = Db4o.openFile(“auto.yap”);

System.out.println(“before:”);

}

写入数据

@Test

public void add(){

Car car = new Car();

car.setName(“byd”);

car.setId((int) (Math.random() * Integer.MAX_VALUE));

container.set(car);

container.commit();

}

获取并修改数据

@Test

public void update(){

ObjectSet query = container.query(Car.class);

query.forEach(e ->{

Car car = (Car)e;

car.setName(“bmw”);

container.set(car);

});

}

遍历

@Test

public void showCars() {

ObjectSet query = container.query(Car.class);

query.forEach(System.out::println);

}

别忘了关闭数据库

@After

public void after(){

if(null != container) container.close();

}

总结,db4o整体可以看作jdk序列化的升级版 PS.这货有稀奇古怪的bug,请在老司机的监视下上生产

gitee地址

https://gitee.com/ichiva/db4o-demo.git

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • singTask和FLAG_ACTIVITY_CLEAR_TOP的区别

    singTask和FLAG_ACTIVITY_CLEAR_TOP的区别假设所有的activity启动方式是standard,两者的区别就是1.intent中的flag为FLAG_ACTIVITY_CLEAR_TOP时,将指定activity上面的其他activity出栈,指定activity位于栈顶,但是可以使用已有的实例或者重新创建一个实例,取决于是否加一个FLAG_ACTIVITY_SINGLE_TOP标志如果加了,则不会重建实例,在onNewIntent()

    2022年7月17日
    14
  • from django.db import models_独立团模块源码

    from django.db import models_独立团模块源码前言APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块请求模块:request对象源码入口APIView类中di

    2022年7月30日
    6
  • vmware虚拟机连不上网解决方案

    vmware虚拟机连不上网解决方案本帖来源于“百度经验”,为了方便在这里记录一下步骤1,首先,打开已经安装好的VMware,在菜单栏找到“编辑”,在弹出的下拉功能菜单中,选择“虚拟网络编辑器”。如图:2,接着,等待软件打开虚拟网络编辑器设置界面。如图:3,接着,在打开的网路编辑器界面中,选择“还原默认设置”。如图:4,接着,在弹出的提示信息框,选择“是”。如图:5,接着,等待软件自动还原网络设置重新安装新的…

    2022年6月26日
    128
  • PyCharm 添加本地解释器

    PyCharm 添加本地解释器若安装 PyCharm 后提示无解释器 则先安装 python 然后文件 gt 设置 gt python 解释器右侧选则添加在系统解释器里添加

    2025年10月18日
    3
  • 3分钟告诉你如何成为一名黑客?|零基础到黑客入门指南,你只需要掌握这五点能力

    3分钟告诉你如何成为一名黑客?|零基础到黑客入门指南,你只需要掌握这五点能力三分钟带各位揭秘黑客究竟是什么,以及想要成为黑客都需要具备哪些能力?

    2022年6月4日
    50
  • Android布局优化之ViewStub、include、merge使用与源码分析

    Android布局优化之ViewStub、include、merge使用与源码分析在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。首先用得最多的应该是include,按照官方的意思,include就是为了解决重复定义相同布局的

    2022年6月28日
    31

发表回复

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

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