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

servlet中使用db4o

    博客分类:
  • db4o
阅读更多

      在web的工程如果想使用db4o,是不能直接使用的,如果想使用的就得做一些初始化的工作,以便在servlet中使用,具体可以看下面的两个网页有详细的介绍:

  http://java.dzone.com/articles/db4o-java

 http://community.versant.com/documentation/reference/db4o-8.1/java/reference/Content/platform_specific_issues/web/servlets.htm

 

  可以如此使用:

   Db4oServletContextListener.java

 

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.db4o.Db4oEmbedded;
import com.db4o.EmbeddedObjectContainer;
import com.db4o.ObjectContainer;
import com.db4o.config.EmbeddedConfiguration;

public class Db4oServletContextListener 
	implements ServletContextListener {

	public static final String PREFIX_PATH = "E:/Pattern/PDFBox-v2/";
	public static final String KEY_DB4O_FILE_NAME = "db4oFileName";
	public static final String KEY_DB4O_SERVER = "db4oServer";
	
	
	@Override
	public void contextInitialized(ServletContextEvent event) {
		System.out.println("context oK");
	    ServletContext context = event.getServletContext();
	    String filePath = PREFIX_PATH + context.getInitParameter(KEY_DB4O_FILE_NAME);
	    EmbeddedConfiguration configEmbedded = Db4oEmbedded.newConfiguration();
	    EmbeddedObjectContainer rootContainer = Db4oEmbedded.openFile(configEmbedded,
				filePath);
	    context.setAttribute(KEY_DB4O_SERVER, rootContainer);
	   /* ArrayList<exam> result = new ArrayList<exam>();
		ObjectSet<exam> objectSet = rootContainer.query(exam.class);
		while (objectSet.hasNext()) {
			result.add((exam) objectSet.next());
		}
		exam[] exams = result.toArray(new exam[result.size()]);
		System.out.println(exams.length);*/
	    context.log("db4o startup on " + filePath);
	}


	@Override
	public void contextDestroyed(ServletContextEvent event) {
	    ServletContext context = event.getServletContext();
	    ObjectContainer rootContainer = (ObjectContainer) context.getAttribute(KEY_DB4O_SERVER);
	    context.removeAttribute(KEY_DB4O_SERVER);
	    close(rootContainer);
	    context.log("db4o shutdown");
	}
	
	private void close(ObjectContainer container) {
		if(container != null) {
			container.close();
		}
	}
}

   自己的servlet代码:

 

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.db4o.EmbeddedObjectContainer;

public class CategoryServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("OK");
		EmbeddedObjectContainer container = (EmbeddedObjectContainer) 
				request.getServletContext().getAttribute("db4oServer");
	}}
 

 

分享到:
评论

相关推荐

    db4o使用指南

    "db4o 使用指南" db4o 是一个开源的面向对象数据库,能够轻松地将 Java 对象持久化到数据库中。本文将详细介绍 db4o 的安装、启动、查询方式、对象持久化、数据库文件结构、主要包结构等知识点。 一、db4o 安装和...

    Db4o的简单操作项目

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

    db4o8.0以及db4o中文指南

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

    db4o中文指南

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

    db4o-8.0-java

    db4o的目标是提供一种简单、高效的方式来处理数据,特别是在嵌入式系统和移动应用中,它的轻量级特性和高性能表现尤为突出。 **版本8.0** 是db4o的最后一个官方发布版本,意味着这个版本包含了db4o的所有最新特性和...

    db4o 权威指南

    该书详细介绍了db4o的基础知识,包括如何安装和配置db4o环境,以及如何在Java项目中集成db4o。作者通过实例展示了如何创建、打开和关闭数据库,以及如何保存和检索对象。书中还涵盖了对象持久化的基本概念,解释了...

    DB4O Java开发应用

    - Installation:在Java项目中使用DB40,通常需要将db4o相关的JAR文件添加到项目的构建路径或依赖管理中。对于Maven项目,可以通过在pom.xml文件中添加对应的依赖来实现。 2. 第一步: - 打开一个DB4O库:首先,...

    db4o .net3.5

    用户可以通过运行此文件在他们的开发环境中安装db4o库,以便在.NET 3.5项目中使用。 ### 4. db4o教程 - **db4o-7.4-tutorial-net.pdf**:这份文档可能是db4o 7.4版针对.NET的官方教程,包含了如何在.NET项目中配置...

    db4o开发指南和各种实例

    **db4o 开发指南与实例详解** **一、db4o 简介** db4o(Database for Objects)是一款开源的对象关系数据库管理...通过学习上述知识点,开发者可以熟练掌握db4o的使用,从而在项目中实现高效、便捷的对象持久化管理。

    DB4O笔记+常用JAR包

    为了在项目中使用DB4O,需要将这些JAR文件添加到项目的类路径中,可以通过以下步骤进行: 1. 下载DB4O的JAR包,通常可以从官方网站或第三方库网站获取。 2. 将下载的JAR文件复制到项目的`lib`目录下。 3. 在IDE(如...

    db4o-7.12-tutorial

    ### db4o-7.12 教程详解 #### 一、db4o简介与安装 db4o是一款开源的对象数据库系统,支持Java、.NET 和 Mono等平台。...随着经验的积累,您将更加熟练地使用db4o来构建高效、可靠的数据库应用程序。

    DB4o 数据库实例

    在本实例中,我们将深入探讨DB4o的使用方法,以及如何结合Visual Studio 2008进行开发。 1. **对象数据库与关系数据库对比**: 对象数据库与传统的关系数据库不同,它直接支持面向对象编程的概念,如类、继承、...

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

    在`DrawTools2005`这个示例程序中,可能展示了如何使用db4o来存储和检索图形工具相关的对象。例如,可能会有一个`Shape`类,包含位置、大小、颜色等属性,以及一个`Drawing`类,包含多个`Shape`对象。开发者可以轻松...

    db4o for java

    在实际使用中,开发者可以下载db4o的库文件(如压缩包中的"db4o-8.0"),将其引入到项目中,然后通过简单的API调用来实现对象的存储和查询。尽管db4o已经停止了官方的更新和支持,但它的设计理念和实现方式仍然对...

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

    DB4o的核心思想是对象持久化,即将内存中的对象实例存储到磁盘上,以便在后续的程序运行中能够再次加载和使用。这与关系型数据库需要将对象转换为表格数据不同,DB4o直接处理对象,提供了更直观的编程模型。 在DB4o...

    DB4O_.net

    DB4O(Database for Objects)是一款开源的对象数据库系统,它允许开发者将.NET对象直接存储到数据库中,无需进行ORM(对象关系映射)转换。在.NET环境中,db4o为开发人员提供了简单、高效的数据库解决方案,特别...

    db4o6.4-java

    - **测试代码**:db4o的测试代码用于验证其功能和性能,通过这些测试用例,你可以更好地了解如何正确使用db4o,并确保其在你的项目中正常工作。 使用db4o时,你需要考虑以下几点: - **兼容性**:db4o可能与不同的...

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

    Db4o,全称为“Database for Objects”,是一个开源的对象数据库系统,专为.NET和Java平台设计。...通过深入研究Db4o的七章内容,你将能够熟练掌握如何在应用程序中使用它,提升开发效率并优化数据管理。

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

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

Global site tag (gtag.js) - Google Analytics