使用db4o的NQ进行数据库的查询,所使用的Person的对象已经在前面的文章中写过
import java.util.List;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.eight.study.bean.Person;
import com.db4o.query.Predicate;
public class DB4oQueryUseNQ {
final static String DB4OFILENAME = System.getProperty("user.dir")
+ "/database.db4o";
public static void NQQueryByCondition() {
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
List<Person> result = db.query(new Predicate<Person>() {
private static final long serialVersionUID = 1L;
public boolean match(Person person) {
return "Person".equals(person.getName());
}
});
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void NQQuery() {
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
List<Person> result = db.query(new Predicate<Person>() {
private static final long serialVersionUID = 1L;
public boolean match(Person person) {
return true;
}
});
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void NQQueryByManyCondition() {
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
List<Person> result = db.query(new Predicate<Person>() {
private static final long serialVersionUID = 1L;
public boolean match(Person person) {
return person.getId().equals("000003")
&&person.getName().equals("Aimi")
||person.getPassword().equals("132345");
}
});
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void main(String[] args) {
// DB4oQueryUseNQ.NQQueryByCondition();
// DB4oQueryUseNQ.NQQuery();
DB4oQueryUseNQ.NQQueryByManyCondition();
}
}
分享到:
相关推荐
#### 四、db4o使用示例 - **首次接触**:在深入探讨具体的代码示例之前,我们先来熟悉一下db4o的基本概念和组件。了解db4o引擎的工作原理以及如何将对象持久化到数据库中。 - **基本操作**:学习如何使用db4o进行...
DB4O面向对象数据库使用指南
NQ 是 db4o 的主要查询接口,提供了高级的查询功能,开发者可以使用 Predicate 类来构造原生查询。 三、db4o 对象持久化 db4o 对象持久化是将 Java 对象保存到数据库中的过程。 db4o 提供了两种运行模式:本地模式...
**db4o(Database for Objects)**是一款开源的对象数据库,专为Java开发人员设计,它允许开发者直接在数据库中存储和检索Java对象,无需进行传统的SQL映射。本指南的第三部分将深入探讨如何在db4o中进行数据库重构...
**对象数据库db4o详解** 对象数据库是一种新型的数据库管理系统,与传统的关系型数据库不同,它直接存储和管理对象,而不是将对象转换为表格形式的数据。db4o(database for objects)是对象数据库的一种,它提供了...
1. **原生面向对象**:db4o提供了一种全新的面向对象的查询方式,能够直接在Java或.NET等现代编程语言中进行操作,实现了100%面向对象的设计理念。 2. **高性能**:db4o具有出色的性能表现,官方提供的测试数据显示...
压缩包中的“DB4O测试”可能包含了一些示例代码,用于演示如何使用DB4o进行对象的存储、查询以及事务处理等操作。通过阅读和运行这些代码,你可以更深入地理解DB4o的工作原理和用法。 10. **整合VS2008**: 在VS...
面向Java开发人员的db4o指南db4o中的数据库重构
在“Db4o的简单操作项目”中,我们将探讨如何使用Db4o进行基本的数据操作,包括对象的持久化、查询以及事务管理。 首先,你需要访问db4o的官方网站(http://www.db4o.com)来获取最新的Db4o版本。下载完成后,将jar...
查询DB4o数据库也相当直观,可以使用查询构造器(Query Object)或者原生查询(Native Queries)。以下是一个使用查询构造器的例子: ```java Query query = oc.query(); query.constrain(TestDBBean.class); query...
Java数据库db4o,全称为“Database for Objects”,是一款开源的对象数据库系统,专门设计用于Java...在压缩包中的“db4o”文件可能包含了db4o的库文件、示例代码、文档等资源,可以帮助深入理解和使用这个数据库系统。
**db4o(Database for Objects)** 是一个开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者直接在Java或.NET平台上存储和检索Java对象或.NET对象,无需进行SQL查询或者映射过程。db4o的...
db4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接将Java或.NET对象存储到数据库中,无需进行ORM(对象关系映射)。db4o的目标是简化数据管理,提供更接近自然编程的方式,使开发过程更加...
db4o提供了强大的查询能力,允许开发者基于对象的属性和关系进行复杂的查询,这在处理复杂业务逻辑时非常有用。 在性能优化方面,《db4o 权威指南》也提供了实用的建议,如内存管理和数据库优化策略,帮助读者在...
db4o也可以作为一个内存数据库使用,这意味着数据库中的所有数据都存储在内存中,而不是硬盘上。内存数据库的优势在于极快的读写速度和低延迟,但缺点是数据不会持久化,一旦程序关闭,所有数据都会丢失。然而,对于...
NQ是db4o提供的一种原生查询机制,它允许开发者使用Java对象进行查询,而不是SQL语句。通过NQ,可以方便地实现对对象属性的匹配,如查询所有年龄大于30的人,只需创建一个年龄为30的对象,然后使用db4o的query()方法...
2.介绍了面向对象数据库 db4o 的安装、启动以及三种查询语言,并对三种查询语言做了比较。 3.介绍面向对象数据库 db4o 的修改和删除,并对其中出现的问题进行细致分析,引入了“更新深度(update depth)”这一重要...
这款数据库引擎已被验证具备优秀的性能,根据描述中的基准测试,db4o在与传统持久化方案的对比中排名第二,仅次于JDBC,且明显优于使用Hibernate/HSQLDB的方案,证明了面向对象并不一定意味着性能损失。 ### 1. db4...