`
zhangbaoming815
  • 浏览: 149933 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用db4o的SODA进行数据库的查询

    博客分类:
  • db4o
阅读更多

使用db4o的SODA进行数据库的查询,所使用的Person对象在前面的文章中已经写过

import com.db4o.Db4o;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.eight.study.bean.Person;
import com.db4o.query.Constraint;
import com.db4o.query.Query;

@SuppressWarnings("deprecation")
public class DB4oQueryUseSODA {
	final static String DB4OFILENAME = System.getProperty("user.dir")
			+ "/database.db4o";

	static {
		Db4o.configure().objectClass(Person.class).objectField("id").indexed(true);
	}
	
	public static void SODAEQueryByConditon(){
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);

		try {
			Query query=db.query();
			query.constrain(Person.class);
			query.descend("name").constrain("Person");
			ObjectSet<Person> result = query.execute();
			for (Person per : result) {
			    System.out.println("id = " + per.getId()+
			    		", name = "+ per.getName() + ", password = " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}
	
	public static void SODAEQuery(){
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);

		try {
			Query query=db.query();
			query.constrain(Person.class);
			ObjectSet<Person> result = query.execute();
			for (Person per : result) {
			    System.out.println("id = " + per.getId()+
			    		", name = "+ per.getName() + ", password = " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}
	
	public static void SODAEQueryByManyCondition(){
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);

		try {
			Query query=db.query();
			query.constrain(Person.class);
			Constraint constraint = query.descend("name").constrain("Aimi");
			Constraint con = query.descend("id").constrain("12");
			query.descend("password").constrain("234156").and(constraint).or(con);
			ObjectSet<Person> result = query.execute();
			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) {
//		DB4oQueryUseSODA.SODAEQueryByConditon();
//		DB4oQueryUseSODA.SODAEQuery();
		long startTime = System.currentTimeMillis();
		int count = 10;
		while(count-- > 0) {
			DB4oQueryUseSODA.SODAEQueryByManyCondition();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("spend time : " + (endTime - startTime));
	}
}
 
分享到:
评论

相关推荐

    db4o面向对象数据库教程的入门教程

    - **基本操作**:学习如何使用db4o进行对象的存储、查询、更新和删除等基本操作。这些操作通常涉及到数据库的连接、事务管理以及对象的序列化和反序列化过程。 - **高级特性**:掌握db4o的一些高级特性,比如并发...

    DB4O面向对象数据库使用指南

    DB4O面向对象数据库使用指南

    db4o使用指南

    QBE 是一种基于示例的查询方式,开发者可以创建一个查询对象, db4o 将根据该对象的属性值来进行查询。 SODA 是一种简单的对象数据库访问方式,开发者可以使用 SODA 来执行基本的 CRUD 操作。 NQ 是 db4o 的主要...

    面向 Java 开发人员的 db4o 指南: 第 3 部分:db4o 中的数据库重构

    **db4o(Database for Objects)**是一款开源的对象数据库,专为Java开发人员设计,它允许开发者直接在数据库中存储和检索Java对象,无需进行传统的SQL映射。本指南的第三部分将深入探讨如何在db4o中进行数据库重构...

    对象数据库db4o对象数据库db4o

    **对象数据库db4o详解** 对象数据库是一种新型的数据库管理系统,与传统的关系型数据库不同,它直接存储和管理对象,而不是将对象转换为表格形式的数据。db4o(database for objects)是对象数据库的一种,它提供了...

    db4o面对对象数据库

    1. **原生面向对象**:db4o提供了一种全新的面向对象的查询方式,能够直接在Java或.NET等现代编程语言中进行操作,实现了100%面向对象的设计理念。 2. **高性能**:db4o具有出色的性能表现,官方提供的测试数据显示...

    DB4o 数据库实例

    压缩包中的“DB4O测试”可能包含了一些示例代码,用于演示如何使用DB4o进行对象的存储、查询以及事务处理等操作。通过阅读和运行这些代码,你可以更深入地理解DB4o的工作原理和用法。 10. **整合VS2008**: 在VS...

    面向Java开发人员的db4o指南db4o中的数据库重构.doc

    面向Java开发人员的db4o指南db4o中的数据库重构

    Db4o的简单操作项目

    在“Db4o的简单操作项目”中,我们将探讨如何使用Db4o进行基本的数据操作,包括对象的持久化、查询以及事务管理。 首先,你需要访问db4o的官方网站(http://www.db4o.com)来获取最新的Db4o版本。下载完成后,将jar...

    DB4o 将一个对象保存到文件中,然后查询读取

    查询DB4o数据库也相当直观,可以使用查询构造器(Query Object)或者原生查询(Native Queries)。以下是一个使用查询构造器的例子: ```java Query query = oc.query(); query.constrain(TestDBBean.class); query...

    java数据库(db4o)

    Java数据库db4o,全称为“Database for Objects”,是一款开源的对象数据库系统,专门设计用于Java...在压缩包中的“db4o”文件可能包含了db4o的库文件、示例代码、文档等资源,可以帮助深入理解和使用这个数据库系统。

    db4o-8.0-java

    **db4o(Database for Objects)** 是一个开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者直接在Java或.NET平台上存储和检索Java对象或.NET对象,无需进行SQL查询或者映射过程。db4o的...

    db4o8.0以及db4o中文指南

    db4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接将Java或.NET对象存储到数据库中,无需进行ORM(对象关系映射)。db4o的目标是简化数据管理,提供更接近自然编程的方式,使开发过程更加...

    db4o 权威指南

    db4o提供了强大的查询能力,允许开发者基于对象的属性和关系进行复杂的查询,这在处理复杂业务逻辑时非常有用。 在性能优化方面,《db4o 权威指南》也提供了实用的建议,如内存管理和数据库优化策略,帮助读者在...

    db4o-8.0.236.16058.zip 对象数据库,内存数据库jar包,两个

    db4o也可以作为一个内存数据库使用,这意味着数据库中的所有数据都存储在内存中,而不是硬盘上。内存数据库的优势在于极快的读写速度和低延迟,但缺点是数据不会持久化,一旦程序关闭,所有数据都会丢失。然而,对于...

    开源面向对象数据库 db4o 之旅

    2.介绍了面向对象数据库 db4o 的安装、启动以及三种查询语言,并对三种查询语言做了比较。 3.介绍面向对象数据库 db4o 的修改和删除,并对其中出现的问题进行细致分析,引入了“更新深度(update depth)”这一重要...

    db4o开发指南和各种实例

    db4o提供了强大的查询能力,不仅可以按属性值进行查询,还可以使用比较运算符、逻辑运算符和函数进行复杂查询。对于更新操作,db4o会自动检测对象的变化,并仅更新实际变化的部分,确保数据一致性。同时,它还提供了...

    db4o中文指南

    这款数据库引擎已被验证具备优秀的性能,根据描述中的基准测试,db4o在与传统持久化方案的对比中排名第二,仅次于JDBC,且明显优于使用Hibernate/HSQLDB的方案,证明了面向对象并不一定意味着性能损失。 ### 1. db4...

Global site tag (gtag.js) - Google Analytics