`

面向对象数据库db4o学习总结

阅读更多

开发步骤:
1.打开对象数据库:
 ObjectContainer db = Db4o.openFile(Util.DB4OFILENAME);//Util.DB4OFILENAME为DB4O数据库名.ObjectContainer        //db为对象容器,即数据库对象

2.向对象数据库插入对象
 
    public static void storeFirstPilot(ObjectContainer db) {
        Pilot pilot1 = new Pilot("tom", 55);
        db.set(pilot1);
        System.out.println("Stored-->" + pilot1);
    }//向对象数据库插入对象

 //向对象数据库插入对象
    public static void storeObject(ObjectContainer db, Object obj) {
        db.set(obj);
        System.out.println("Stored Object ---->" + obj);
    }

3.检索对象数据

//QBE方式检索对象数据库中所有数据
    public static void retrieveAllPilotQBE(ObjectContainer db) {
        Pilot proto = new Pilot(null, 0);
        ObjectSet result = db.get(proto);
        listResult(result);
    }

    //Native Queries方式检索所有数据
    public static void retrieveAllPilots(ObjectContainer db) {
        ObjectSet result = db.get(Pilot.class);
        listResult(result);
    }

    //根据对象STRING字段检索
    public static void retrievePilotByName(ObjectContainer db) {
        Pilot pilot = new Pilot("tom", 0);
        ObjectSet os = db.get(pilot);
        listResult(os);
    }

    //根据对象INT字段检索
    public static void retrievePilotByInt(ObjectContainer db) {
        Pilot pilot = new Pilot(null, 55);
        ObjectSet os = db.get(pilot);
        listResult(os);
    }

    //根据对象STRING字段检索后,增加INT值
    public static void updateObject(ObjectContainer db) {
        ObjectSet os = db.get(new Pilot("tom", 0));
        Pilot pi = (Pilot) os.next();
        pi.addPoints(100);
        db.set(pi);
        System.out.println("added for --->" + pi);
        retrieveAllPilots(db);

    }

    //根据对象STRING字段检索后,删除对象
    public static void deleteObjectByName(ObjectContainer db, String str) {
        ObjectSet os = db.get(new Pilot(str, 0));
        Pilot pi = (Pilot) os.next();
        db.delete(pi);
        System.out.println("Deleted--->" + pi);
        retrieveAllPilots(db);
    }

    //QE方式检索对象
    public static ObjectSet queryAllObjectByQE(ObjectContainer db, Class cls,
                                               String field, String str) {
        Query query = db.query();
        query.constrain(cls);
        query.descend(field).constrain(str);
        ObjectSet os = query.execute();
        return os;
    }

    public static ObjectSet queryObjectByQE(ObjectContainer db, Class cls,
                                            String field, Integer x) {
        Query query = db.query();
        query.constrain(cls);
        query.descend(field).constrain(x);
        /*constrain:
          词性及解释 Part of speech and defination
         vt. 强迫, 限制, 关押

         */
        return query.execute();
    }

    //否定方式QE检索
    public static ObjectSet queryByNegation(ObjectContainer db, Class cls,
                                            String field, String value) {
        Query query = db.query();
        query.constrain(cls);
        query.descend(field).constrain(value).not();
        /*     descend:
                 词性及解释 Part of speech and defination
                 vi. 下降, 世代相传, 屈尊, 袭击
                 vt. 下降
                 【法】 把财产传给, 遗传
         */


        return query.execute();
    }

    //conjunction方式QE检索
    public static ObjectSet retrieveByConjunction(ObjectContainer db, Class xls,
                                                  Object obj1, Object obj2,
                                                  String f1, String f2) {
        Query query = db.query();
        query.constrain(xls);
        Constraint constr = query.descend(f1).constrain(obj1);
        query.descend(f2).constrain(obj2).and(constr);
        /*     conjunction:
         词性及解释 Part of speech and defination
         n. 连接词, 联合, 结合
         【计】 合取

         */
        return query.execute();
    }

    //Disjunction方式QE检索,即相当于SQL中的OR查询
    public static ObjectSet retrieveByDisjunction(ObjectContainer db, Class xls,
                                                  String f1, Object value1,
                                                  String f2, Object value2) {
        Query query = db.query();
        query.constrain(xls);
        Constraint constr = query.descend(f1).constrain(value1);
        query.descend(f2).constrain(value2).or(constr);
        /*Disjunction:
         []  词性及解释 Part of speech and defination
         n. 分离, 分裂, 分断

         */
        return query.execute();
    }
     //Comparison方式QE检索,即检索当f1字段值大于value1的对象数据
    public static ObjectSet retrieveByComparison(ObjectContainer db,Class xls,String f1,Object value1)
    {
        Query query=db.query();
        query.descend(f1).constrain(value1).greater();
        /*comparison:
                 词性及解释 Part of speech and defination
         n. 比较, 对照, 比喻
         【经】 比较, 对比

         */
        return query.execute();

以下是总结出来的DB4O主要对象图:

 


    }

分享到:
评论

相关推荐

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

    1.介绍了面向对象数据库 db4o 的基本特性,并且与传统关系型数据库以及 OR 映射技术做了比较分析,读者可以体验到 db4o 的全新的面向对象存储的理念,并且给出了性能测试数据。 2.介绍了面向对象数据库 db4o 的安装...

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

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

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

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

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

    ### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源...希望通过对这些知识点的学习,能够帮助大家更好地理解和使用db4o面向对象数据库。

    Android开发-面向对象的数据库Db4o.doc

    Db4o是一个面向对象的数据库系统,由db4objects公司开发,它支持Java和.NET平台,并采用双授权模式,即GPLv2和商业授权。在Android开发中,Db4o提供了一种替代传统关系型数据库如SQLite的方式,尤其是在面对面向对象...

    db4o使用指南

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

    java数据库(db4o)

    Java数据库db4o,全称为“Database for Objects”,是一款开源的对象数据库系统,专门设计用于Java和.NET平台。它提供了一种直接在对象模型上进行数据操作的方式,无需传统的ORM(对象关系映射)层,简化了开发过程...

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

    DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接在内存中以对象的形式存储、查询和检索数据,无需转换为关系型数据库的表格形式。在本笔记中,我们将深入探讨DB4o的对象SQL基本操作,...

    db4o-8.0-java

    总结来说,"db4o-8.0-java" 是一个完整的db4o对象数据库解决方案,包含所有必要的组件,让Java开发者能够轻松地在自己的项目中实施对象数据库。源码、jar包、Eclipse插件和文档的提供,使得开发、调试和学习过程变得...

    db4o 权威指南

    《db4o 权威指南》是一本深入探讨db4o这一开源面向对象数据库系统的专业书籍,对于Java开发者来说尤其有价值。db4o是Database for Objects的缩写,它允许开发者以自然、直观的方式存储和检索Java对象,无需编写SQL...

    DB4o 数据库实例

    总结,DB4o是一款强大的对象数据库,它的主要优势在于简化了对象的持久化,提供了直观的查询方式,以及丰富的功能特性。通过本实例,你可以了解到如何在VS2008环境中集成DB4o,进行对象数据库的开发和应用。在实际...

    意想不到的数据库(DB4O)

    DB4O是一个开源的面向对象数据库管理系统,特别适合于嵌入式系统。它为Java和.NET平台提供了强大的支持,使得开发者能够轻松地在资源受限的环境中管理和存储数据。 #### 嵌入式系统与数据管理的重要性 随着技术的...

    android开源数据库框架db4o

    Android开源数据库框架db4o是一个强大的对象数据库管理系统,专为Java和.NET平台设计,但在Android环境中也有广泛的应用。db4o提供了一种直接在内存或磁盘上存储对象的方式,无需传统的关系型数据库映射,这使得开发...

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

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

    db4o面对对象数据库

    ### db4o面向对象数据库知识点解析 #### 一、db4o简介与特点 db4o是一款完全面向对象的数据库管理系统,它以其简洁高效的特点而受到开发者的喜爱,尤其适用于初学者。作为一款轻量级的对象数据库,db4o支持直接...

    db4o for java

    **db4o (Database for Objects) 是一个开源的、基于Java和.NET的面向对象数据库系统。...对于想要了解面向对象数据库和探索非关系型数据库解决方案的开发者来说,db4o是一个值得学习和研究的实例。

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

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

Global site tag (gtag.js) - Google Analytics