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

db4o数据库的基本操作

    博客分类:
  • db4o
阅读更多

对db4o(面向对象的数据库)的基本操作:

 

数据库的链接:

private static ObjectContainer db;
	
	final static String DB4OFILENAME = System.getProperty("user.dir")
			+ "/database.db4o";
	
	static{
		db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
	}

 数据库存储:

public void store(Object obj) {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			db.store(obj);
		} finally {
			db.close();
		}
	}

 数据的查询,更新,和删除操作:

public void queryObject() {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		List<Person> persons = null;
		try{
			persons = db.query(new Predicate<Person>() {
				private static final long serialVersionUID = 1L;
	
				public boolean match(Person person) {
//					return "Allen".equals(person.getName());//根据特定的条件查询数据
					return true;//查询数据库中对应表中所有的数据,此处为person表
				}
			});
			for(Person per : persons) {
				System.out.println(per.getName()+" : " + per.getPassword());
			}
			Person person = persons.get(0);
			System.out.println(person);
			person.setName("Person");
			db.store(person);
//			db.delete(person);
			System.out.println("==================");
			for(Person per : persons) {
				System.out.println(per.getName()+" : " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}

 完整的代码:

Person

public class Person {
	private String id;
	private String name;
	private String password;
	
	public Person(String id, String name, String password) {
		this.id = id;
		this.name = name;
		this.password = password;
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

 Operation

import java.util.List;

import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.eight.study.bean.Person;
import com.db4o.query.Predicate;
import com.db4o.query.Query;

public class Operation {
	
//	private static ObjectContainer db;
	
	final static String DB4OFILENAME = System.getProperty("user.dir")
			+ "/database.db4o";
	
//	static{
//		db = Db4oEmbedded.openFile(
//				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
//	}
	
//	public static ObjectContainer DB4oConnection() {
//		return db;
//	}

	//db4o 数据库存储对象
	public void store(Object obj) {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			db.store(obj);
		} finally {
			db.close();
		}
	}

	//db4o 数据库进行查询,第一种查询方法
	public void queryObject() {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		List<Person> persons = null;
		try{
			persons = db.query(new Predicate<Person>() {
				private static final long serialVersionUID = 1L;
	
				public boolean match(Person person) {
//					return "Allen".equals(person.getName());//根据特定的条件查询数据
					return true;//查询数据库中对应表中所有的数据,此处为person表
				}
			});
			for(Person per : persons) {
				System.out.println(per.getName()+" : " + per.getPassword());
			}
			Person person = persons.get(0);
			System.out.println(person);
			person.setName("Person");
			db.store(person);
//			db.delete(person);
			System.out.println("==================");
			for(Person per : persons) {
				System.out.println(per.getName()+" : " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}
	
	//db4o 数据库进行查询,第二种查询方法
	public void queryObject(String name) {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		List<Person> persons = null;
		try{
			Query query = db.query();
			query.constrain(Person.class);
			query.descend("name").constrain(name);
			persons = query.execute();
			System.out.println(persons.get(0).getName()+" : " + persons.get(0).getPassword());
		} finally {
			db.close();
		}
	}
	
	//db4o 删除一个对象
	public void deleteObject(Object obj) {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			db.delete(obj);
		} finally {
			db.close();
		}
	}

	public static void main(String[] args) {
		System.out.println(DB4OFILENAME);
		Operation op = new Operation();
//		Person person = new Person("000001", "Allen", "123456");
//		Person person1 = new Person("000002", "Jeson", "654321");
//		Person person2 = new Person("000003", "Aimi", "234156");
//		op.store(person);
//		op.store(person1);
//		op.store(person2);
		op.queryObject();
//		op.queryObject("Aimi");
//		op.deleteObject(person2);
	}
}
 
分享到:
评论

相关推荐

    DB4o 数据库实例

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

    db4o使用指南

    在本地模式下,开发者可以直接在程序里打开 db4o 数据库文件进行操作,而在服务器模式下,客户端可以通过 IP 地址、端口以及授权口令来访问服务器。 四、db4o 数据库文件结构 db4o 的数据库文件后缀名是“*.yap”...

    db4o8.0以及db4o中文指南

    2. 掌握db4o的基本API,如打开和关闭数据库、保存和检索对象等。 3. 学习OQL查询语言,掌握如何执行复杂查询。 4. 实践项目,通过实际操作加深理解。 5. 阅读官方文档和社区论坛,了解最新动态和解决方案。 通过...

    Db4o的简单操作项目

    通过理解和掌握这些基本操作,你就能在你的Java人事管理系统中有效地使用Db4o。尽管Db4o已经停止了官方支持,但它的设计理念和模式对于理解对象数据库的概念仍然很有价值,特别是对于那些希望避开传统关系型数据库...

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

    接着,我们需要创建一个DB4o数据库实例,通常通过`Db4o.openServer()`或`Db4o.openFile()`方法实现。例如,打开一个本地文件作为数据库: ```java ObjectContainer oc = Db4o.openFile(config, "path/to/database....

    db4o 权威指南

    最后,书中可能还会涉及db4o与其他数据库系统的互操作性,以及如何在已有项目中平滑地迁移至db4o。此外,作为开源项目,db4o的社区支持和版本更新也是重要的部分,可能会介绍如何参与社区,获取最新的开发信息和bug...

    DB4O笔记+常用JAR包

    这个简单的示例展示了如何打开一个DB4O数据库,创建一个新的Person对象,将其保存到数据库,然后通过查询API获取并打印出该对象。 总的来说,DB4O作为一个对象数据库,为Java开发者提供了便捷的数据存储和检索方式...

    非常好的Db4o资料,适合想研究Db4o的同学

    2. **透明性**:Db4o的设计目标之一是尽可能减少数据库操作对代码的影响。开发者可以像操作普通对象一样操作持久化的对象,无需额外的API调用或SQL语句。 3. **查询API**:Db4o提供了强大的查询机制,包括激活查询...

    android开源数据库框架db4o

    总的来说,db4o作为一个对象数据库,为Android开发者提供了便捷的对象持久化方案,其对象化CRUD操作、强大的查询能力以及事务管理功能,使得在处理复杂数据结构时更加高效和灵活。在实际项目中,可以根据具体需求...

    db4o .net3.5

    - **db4o-7.4-tutorial-net.pdf**:这份文档可能是db4o 7.4版针对.NET的官方教程,包含了如何在.NET项目中配置和使用db4o的详细步骤,涵盖了基本操作、高级特性和最佳实践。 - **db4o-7.4-tutorial-java.pdf**:...

    DB4o学习笔记 对象的SQL基本操作

    在本笔记中,我们将深入探讨DB4o的对象SQL基本操作,帮助你更好地理解和运用这个强大的工具。 一、对象持久化 在DB4o中,对象的持久化非常直观,只需将对象实例存储到数据库即可。例如,你有一个名为`Person`的类,...

    db4o6.4-java

    【db4o6.4-java】是一个针对Java平台的数据库引擎开发包,它包含了db4o的源代码、测试代码以及...通过深入了解和使用db4o-6.4,你可以掌握对象数据库的基本原理和实践,为你的项目提供一个高效、灵活的数据管理方案。

    a example use db4o

    【描述】:“这个示例是关于如何使用db4o数据库引擎的。db4o是一个开源的对象数据库,它允许开发者将数据存储为对象,而不是传统的行和列模式。这个例子可能包含了如何创建、查询、更新和删除对象在db4o中的操作。”...

    DB4O操作的简单示例

    在本示例中,我们将探讨如何使用DB4O进行基本的操作,包括打开数据库、存储对象以及检索对象。 首先,让我们了解DB4O的基本概念。DB4O的核心是ObjectContainer,它是数据库的接口,提供了存储和检索对象的方法。在...

    DB4O管理工具

    在这个“DB4O管理工具”中,我们可以看到它主要用于对DB4O数据库进行管理和维护。 该工具提供了两个核心功能:查看和删除DB4O数据库中的数据。以下是这些功能的详细解释: 1. 查看数据:这个功能使得用户能够直观...

    db4o-8.0 相关的jar包,适用java开发,Android开发

    在Android应用中,db4o是一个非常实用的解决方案,因为它减少了对SQLite数据库操作的复杂性。由于Android设备内存有限,db4o的小型体积和高效性能使其成为理想的数据库选择。它可以在内存中运行,提高数据处理速度,...

    db4o7.0指南

    db4o的核心理念是将对象模型直接映射到数据库,这意味着你可以像操作内存中的对象一样操作数据库中的数据。在7.0版本中,这一特性得到了进一步强化,支持了更多的面向对象编程概念,如继承、多态和封装,使得数据...

    DB4O 封装(面向对象数据库),采用泛型,支持任意对象存取,可移植性贼好! 哈哈

    DB4O,全称为“Database for Objects”,是一个开源的、基于Java和.NET平台的面向对象数据库系统。它允许开发者直接将Java或.NET的对象存储到数据库中,无需进行SQL映射或者对象关系映射(ORM)。在标题中提到的...

    面向 Java 开发人员的 db4o 指南 结构化对象和集合

    它涵盖了db4o的基本概念、API使用、查询语言、性能优化以及数据库的配置和管理等方面,旨在帮助Java开发者更好地理解和应用对象数据库技术。通过深入学习和实践,开发者可以充分利用db4o的特性,提高应用程序的开发...

Global site tag (gtag.js) - Google Analytics