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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python urlopen()「建议收藏」

    首先调用urlopen需要导入urllib.request模块。urllib.request:urlopen():简单来说就是打开一个URL.url:来自百度百科urlopen的返回值,测试:可见返回值是http.client.HTTPResponsed对象。http.client.HTTPResponsed对象:详…

    2022年4月15日
    38
  • C++并发实战19:lock free编程

    C++并发实战19:lock free编程涉及到并行/并发计算时,通常都会想到加锁,加锁可以保护共享的数据,不过也会存在一些问题:1.由于临界区无法并发运行,进入临界区就需要等待,加锁使得效率的降低。多核CPU也不能发挥全部马力2.在复杂的情况下,很容易造成死锁,并发进程、线程之间无止境的互相等待。3.在中断/信号处理函数中不能加锁,给并发处理带来困难。4.加锁影响实时性,等待时间不确定5.优先级反转,优先级

    2022年7月19日
    17
  • iPhone屏幕尺寸、分辨率及适配

    从初代iPhone3GS到现如今的iPhone6(+),屏幕尺寸、分辨率、像素密度都在在不断增大。如何适配不同的屏幕尺寸,使UI更加协调美观,这给iPhone/iOS应用开发者带来了挑战。本文结合个人在iOSUI开发和适配方面的粗浅经验,对常用屏幕适配相关因素做个梳理盘点,以备日后查阅。

    2022年4月7日
    222
  • 自己动手写Vue插件Toast

    自己动手写Vue插件Toast

    2022年3月3日
    34
  • 建立数据库,建立一个“学生”表student。[通俗易懂]

    建立数据库,建立一个“学生”表student。[通俗易懂]1.建立数据库,建立一个“学生”表student。2.设计思想:首先利用createdatabase语句建立一个数据库,再用createtable语句按要求建立基本表,再按照规则添加数据。3.实验代码及注释:创建数据库mysql>createdatabaseymz;QueryOK,1rowaffected(0.03sec)使用数据库mysql>us…

    2022年7月24日
    20
  • MySQL最常用分组聚合函数「建议收藏」

    MySQL最常用分组聚合函数

    2022年2月10日
    42

发表回复

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

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