DB4O--java对象数据库

特色

  • 直接存储java对象,抛弃对象映射的繁琐
  • 能够使用简单的查询语句

致命缺点

  • 与java语言绑定

demo

gitee地址

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

主要依赖

<dependency>
            <groupId>org.fudaa.com.db4o</groupId>
            <artifactId>db4o-java5</artifactId>
            <version>5.5.1</version>
        </dependency>

编写测试用例

官方实体类

@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<Car> 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,请在老司机的监视下上生产java

gitee地址

https://gitee.com/ichiva/db4o-demo.git
相关文章
相关标签/搜索