zoukankan      html  css  js  c++  java
  • (转)直接保存对象的数据库——db4o

    在实际开发中,数据的存储是必不可少的,常用的有数据库存储和文件存储。数据库目前有关系型数据库和文档型数据库(No-SQL)。关系型数据库以字段、类型、约束、表关系来存储和管理数据,比较常见的比如Oracle、MySql等都属于RDBMS,文档型数据库是一种可分布式的文档结构数据库,没有关系型数据库中传统意义上的表,比较常见的比如MongoDB、CouchDB等。

    今天主要介绍下,在java开发中,利用第三方开源项目db4o如何直接将对象保存到数据库,而非将对象中属性拆解出来后再保存,这样操作起来更快捷、更直观。db4o目前支持Java和.Net平台,它的原理其实就是将对象保存到文件中,但是使用上和传统的数据库没有区别。先来看看db4o和关系型数据库保存数据的方式:


    从上图可以看出,db4o更直接。ok,还是直接看使用吧:

    从官网下载jar包后,添加到工程中(别忘了添加路径),首先是获取数据库引用:

    String DATABASE_PATH = this.getFilesDir().getAbsolutePath() + "/testdb4o";
            //获取指定路径下数据库引用
            ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), DATABASE_PATH);
    

      

     //插入
            Student student1 = new Student("Ryan", 24);
            Student student2 = new Student("TangRen", 23);
            db.store(student1);
            db.store(student2);
            db.commit();//注意别忘了commit,否则数据更改不生效,机制类似一般的SQL数据库
    

      

    //查询
            Student queryOBJ = new Student();
            //设置查询条件
    //        queryOBJ.setAge(23);
            ObjectSet<Student> result = db.queryByExample(queryOBJ);
            while(result.hasNext()){
            	Student st = result.next();
            	System.out.println("Name:"+st.getName());
            	System.out.println("Age:"+st.getAge());
            }
    

      插入成功,输出结果如下:

     //删除指定对象(删除全部则不设置条件)
            Student deleteOBJ = new Student();
            deleteOBJ.setAge(23);
            ObjectSet<Student> resultObjectSet = db.queryByExample(deleteOBJ);
            while(resultObjectSet.hasNext()){
            	Student ss = resultObjectSet.next();
            	db.delete(ss);
            }
            db.commit();
    

      

    输出结果:

    //修改
            Student updateOBJ = new Student();
            updateOBJ.setName("Ryan");
            ObjectSet<Student> objectSet = db.queryByExample(updateOBJ);
            if (objectSet.hasNext()) {
    			Student stu = objectSet.next();
    			stu.setAge(25);
    			db.store(stu);
    			db.commit();
    		}
    

      输出结果:

    到此就简单介绍了一下db4o的使用,感兴趣的同学可以深入研究一下,给出两个参考网站:

    http://www.db4o.com/about/productinformation/whitepapers/db4o%20Whitepaper%20-%20The%20Database%20Behind%20the%20Brains.pdf

    http://www.db4o.com/DownloadNow.aspx

    Demo下载

    这是群里一个朋友写的总结,大家可以参考下:http://blog.csdn.net/u011290399/article/details/9263777

    转载自:http://blog.csdn.net/ryantang03/article/details/8248834

  • 相关阅读:
    CodeForces Gym 100935G Board Game DFS
    CodeForces 493D Vasya and Chess 简单博弈
    CodeForces Gym 100935D Enormous Carpet 快速幂取模
    CodeForces Gym 100935E Pairs
    CodeForces Gym 100935C OCR (水
    CodeForces Gym 100935B Weird Cryptography
    HDU-敌兵布阵
    HDU-Minimum Inversion Number(最小逆序数)
    七月馒头
    非常可乐
  • 原文地址:https://www.cnblogs.com/greywolf/p/3252159.html
Copyright © 2011-2022 走看看