`

Spring和DB4O集成总结( 入门级B)

阅读更多
  // 根据对象INT字段或对象STRING字段检索(参数与传过来的Object相关)<o:p></o:p>

    public static ObjectSet retrieveObjectByFieldPramaters(ObjectContainer db,<o:p></o:p>

           Object obj) {<o:p></o:p>

<o:p> </o:p>

       ObjectSet os = db.get(obj);<o:p></o:p>

       return os;<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // QE方式根据参数String field(字段名), String str(参数值),查找对象数据<o:p></o:p>

    public static ObjectSet queryObjectQEByFieldPramatersString(<o:p></o:p>

           ObjectContainer db, Class cls, String field, String value) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(cls);<o:p></o:p>

       query.descend(field).constrain(value);<o:p></o:p>

       ObjectSet os = query.execute();<o:p></o:p>

       return os;<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // QE方式根据参数String field(字段名), Integer x(参数值),查找对象数据<o:p></o:p>

    public static ObjectSet queryObjectQEByFieldPramatersInteger(<o:p></o:p>

           ObjectContainer db, Class cls, String field, Integer value) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(cls);<o:p></o:p>

       query.descend(field).constrain(value);<o:p></o:p>

       /*<o:p></o:p>

        * constrain: 词性及解释 Part of speech and defination vt. 强迫, 限制, 关押<o:p></o:p>

        * <o:p></o:p>

        */<o:p></o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // 否定方式QE检索<o:p></o:p>

    public static ObjectSet queryByNegation(ObjectContainer db, Class cls,<o:p></o:p>

           String field, String value) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(cls);<o:p></o:p>

       query.descend(field).constrain(value).not();<o:p></o:p>

       /*<o:p></o:p>

        * descend: 词性及解释 Part of speech and defination vi. 下降, 世代相传, 屈尊, 袭击 vt.<o:p></o:p>

        * 下降 【法】 把财产传给, 遗传<o:p></o:p>

        */<o:p></o:p>

<o:p> </o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // conjunction方式QE检索<o:p></o:p>

    public static ObjectSet retrieveByConjunction(ObjectContainer db,<o:p></o:p>

           Class xls, Object obj1, Object obj2, String f1, String f2) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(xls);<o:p></o:p>

       Constraint constr = query.descend(f1).constrain(obj1);<o:p></o:p>

       query.descend(f2).constrain(obj2).and(constr);<o:p></o:p>

       /*<o:p></o:p>

        * conjunction: 词性及解释 Part of speech and defination n. 连接词, 联合, 结合 【计】<o:p></o:p>

        * 合取<o:p></o:p>

        * <o:p></o:p>

        */<o:p></o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // Disjunction方式QE检索,即相当于SQL中的OR查询<o:p></o:p>

    public static ObjectSet retrieveByDisjunction(ObjectContainer db,<o:p></o:p>

           Class xls, String f1, Object value1, String f2, Object value2) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(xls);<o:p></o:p>

       Constraint constr = query.descend(f1).constrain(value1);<o:p></o:p>

       query.descend(f2).constrain(value2).or(constr);<o:p></o:p>

       /*<o:p></o:p>

        * Disjunction: [] 词性及解释 Part of speech and defination n. 分离, 分裂, 分断<o:p></o:p>

        * <o:p></o:p>

        */<o:p></o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // Comparison方式QE检索,即检索当f1字段值大于value1的对象数据<o:p></o:p>

    public static ObjectSet retrieveByComparison(ObjectContainer db, Class xls,<o:p></o:p>

           String f1, Object value1) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.descend(f1).constrain(value1).greater();<o:p></o:p>

       /*<o:p></o:p>

        * comparison: 词性及解释 Part of speech and defination n. 比较, 对照, 比喻 【经】 比较,<o:p></o:p>

        * 对比<o:p></o:p>

        * <o:p></o:p>

        */<o:p></o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // 默认字段值QE检索<o:p></o:p>

    public static ObjectSet retrieveByDefaultFieldValue(ObjectContainer db,<o:p></o:p>

           Class xls, String f1, Object v1) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(xls);<o:p></o:p>

       query.descend(f1).constrain(v1);<o:p></o:p>

<o:p> </o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // Ascending排序方式检索对象数据库中的所有对象数据<o:p></o:p>

    public static ObjectSet retrieveSortedOrderByAscending(ObjectContainer db,<o:p></o:p>

           Class xls, String f1) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(xls);<o:p></o:p>

       query.descend(f1).orderAscending();<o:p></o:p>

<o:p> </o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // Descending排序方式检索对象数据库中的所有对象数据<o:p></o:p>

    public static ObjectSet retrieveSortedOrderByDescending(ObjectContainer db,<o:p></o:p>

           Class xls, String f1) {<o:p></o:p>

       Query query = db.query();<o:p></o:p>

       query.constrain(xls);<o:p></o:p>

       query.descend(f1).orderDescending();<o:p></o:p>

<o:p> </o:p>

       return query.execute();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    // 清除对象数据库中所有元对象Class所对应的对象数据<o:p></o:p>

    public static void clearDatabase(ObjectContainer db, Class xls) {<o:p></o:p>

       ObjectSet result = db.get(xls);<o:p></o:p>

       while (result.hasNext()) {<o:p></o:p>

           db.delete(result.next());<o:p></o:p>

       }<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    /**<o:p></o:p>

     * ObjestSet的对象存储到List<o:p></o:p>

     * <o:p></o:p>

     * @param 结果集<o:p></o:p>

     */<o:p></o:p>

    public static List convertObjectSet(ObjectSet os) {<o:p></o:p>

       java.util.List list = new java.util.ArrayList(os.size());<o:p></o:p>

       while (os.hasNext()) {<o:p></o:p>

           list.add(os.next());<o:p></o:p>

       }<o:p></o:p>

       return list;<o:p></o:p>

<o:p> </o:p>

    }<o:p></o:p>

    <o:p></o:p>

     /**    <o:p></o:p>

      * 打开本地库    <o:p></o:p>

      *    <o:p></o:p>

      */    <o:p></o:p>

     public static ObjectContainer openLocalDb(ObjectContainer db){     <o:p></o:p>

      db = Db4o.openFile(DB4OFILENAME);     <o:p></o:p>

      return db;<o:p></o:p>

     }     <o:p></o:p>

          <o:p></o:p>

     /**    <o:p></o:p>

      * 关闭库    <o:p></o:p>

      *    <o:p></o:p>

      */    <o:p></o:p>

     public static void closeDb(ObjectContainer db){     <o:p></o:p>

      if(db!=null) db.close();     <o:p></o:p>

     }    <o:p></o:p>

<o:p> </o:p>

}<o:p></o:p>

<o:p> </o:p>

3:编写持久化接口:<o:p></o:p>

/**

 *

 */

package com.store;

<o:p> </o:p>

import java.util.Collection;

<o:p> </o:p>

/**

 * @author gyc

 *

 */

public interface DbStoreIf {

       //CRUD方法

       public boolean storeObject(Object obj);

       public boolean deleteObject(Object obj);

       public boolean updateObject(Object obj);

       public Object findObject(Object obj);

      

       public Collection findAllObjects(Object obj);

       /*

        * 根据特殊条件检索对象

   &nb

分享到:
评论

相关推荐

    db4o使用指南

    一、db4o 安装和启动 db4o 的安装非常简单,只需要从官方网站下载最新的版本,并在 Eclipse 中新建 Java 项目,将 db4o 对象数据库引擎包 db4o-5.5-java5.jar 导入进项目。 db4o 支持多种版本的 JDK,因此可以根据...

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

    ### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源面向对象数据库系统。它提供了高效的数据存储和检索功能,支持多种数据类型,并且...

    Db4o的简单操作项目

    Db4o,全称为“Database for Objects”,是一个开源的对象数据库管理系统,主要应用于Java和.NET平台。这个项目专注于提供一种简单的方式来存储和检索Java对象,无需SQL或其他中间映射层。在“Db4o的简单操作项目”...

    db4o8.0以及db4o中文指南

    在db4o 8.0版本中,引入了多项增强功能和改进,以提升性能和用户体验。 ### 一、对象数据库基础 对象数据库与传统的关系型数据库不同,它不依赖于表格和列的结构,而是直接存储和检索对象实例。这使得对象数据库在...

    db4o-8.0-java

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

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

    **对象数据库db4o详解** ...通过`DrawTools2005`这样的示例程序,开发者可以深入理解如何将db4o集成到实际项目中,提升开发效率。无论是学习还是实际开发,db4o都是一个值得探索的对象数据库解决方案。

    db4o中文指南

    db4o是一个专为Java和.NET开发者设计的开源、轻量级的纯面向对象数据库引擎,提供了一种简单易用的方式来实现对象持久化。这款数据库引擎已被验证具备优秀的性能,根据描述中的基准测试,db4o在与传统持久化方案的...

    db4o 权威指南

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

    db4o开发指南和各种实例

    db4o广泛应用于嵌入式系统、移动应用和小型项目中。 **二、NQ(Native Queries)** NQ是db4o提供的一种原生查询机制,它允许开发者使用Java对象进行查询,而不是SQL语句。通过NQ,可以方便地实现对对象属性的匹配,...

    db4o .net3.5

    这个标题暗示我们将讨论的是db4o与.NET Framework 3.5的集成和使用。 ### 1. 对象数据库 对象数据库与关系型数据库的主要区别在于,它存储和查询的是对象而非表格数据。db4o将对象的实例直接保存到数据库中,使得...

    db4o-7.12-tutorial

    - **db4o引擎**:db4o的核心是一个高性能的对象数据库引擎,能够直接存储和检索对象数据,无需复杂的转换过程。 - **对象持久化**:通过简单的API调用即可实现对象的存储和检索,极大地简化了开发工作。 - **事务...

    DB4O Java开发应用

    这些资源可以帮助你更好地了解如何在实际项目中集成和使用DB4O。 在实际开发中,DB4O提供了强大的特性,如透明持久化、延迟加载、查询优化等,使得开发人员可以更专注于业务逻辑,而不是数据库交互的细节。不过,...

    DB4o 数据库实例

    DB4o(Database for Objects)是一款开源的对象数据库...通过本实例,你可以了解到如何在VS2008环境中集成DB4o,进行对象数据库的开发和应用。在实际项目中,根据具体需求,合理运用DB4o能有效提高开发效率和系统性能。

    java数据库(db4o)

    7. **轻量级**:db4o的体积小,启动快速,适合嵌入式系统和移动应用。 8. **可扩展性**:db4o允许用户自定义存储策略,如字段级别的加密或特定的索引类型。 9. **社区支持**:作为开源项目,db4o拥有活跃的开发者...

    DB4O管理工具

    DB4O(Database for Objects)是一款开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者将Java或.NET对象直接存储到磁盘上,无需转换为传统的表和列的结构。DB4O的设计理念是简化数据存储,...

    DB4O_.net

    " 这意味着db4o具有轻量级、快速启动和运行的特点,对于那些需要快速实现数据存储功能的项目来说,是一个理想的选择。尤其是在开发桌面应用时,db4o可以极大地简化数据管理,因为它允许直接将对象存储和检索,而无需...

    db4o-5.0-tutorial-java帮助

    db4o(发音为“d-b-for-o”)是一款原生的Java、.NET和Mono平台的开源对象数据库。它以简单易用和高性能著称,适用于存储和查询复杂的对象结构。db4o的设计理念是将对象直接存储到数据库中,而无需像传统的关系型...

    db4o的ppt讲稿

    db4o作为一个强大的开源对象导向数据库,解决了面向对象编程与关系型数据库之间的不兼容性,为开发者提供了直接、高效、轻量级的数据持久化解决方案。它的广泛应用和社区支持证明了其在简化开发流程、提高性能和跨...

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

    Db4o,全称为“Database for Objects”,是一个开源的对象数据库系统,专为.NET和Java平台设计。它允许开发者直接在对象上进行数据操作,而无需传统的ORM(对象关系映射)层,简化了数据存储和检索的过程。这个...

Global site tag (gtag.js) - Google Analytics