特色
- 直接存储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