DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 数据库基础 > DB4O

直接保存对象的数据库——db4o

在实际开发中,数据的存储是必不可少的,常用的有数据库存储和文件存储。数据库目前有关系型数据库和文档型数据库(No-SQL)。关系型数据库以字段、类型、约束、表关系来存储和管理数据,比较常见的比如Oracle、MySql等都属于RDBMS,文档型数据库是一种可分布式的文档结构数据库,没有关系型数据库中传统意义上的表,比较常见的比如MongoDB、CouchDB等。
今天主要介绍下,在java开发中,利用第三方开源项目db4o如何直接将对象保存到数据库,而非将对象中属性拆解出来后再保存,这样操作起来更快捷、更直观。db4o目前支持Java和.Net平台,它的原理其实就是将对象保存到文件中,但是使用上和传统的数据库没有区别。先来看看db4o和关系型数据库保存数据的方式:


从上图可以看出,db4o更直接。ok,还是直接看使用吧:
从官网下载jar包后,添加到工程中(别忘了添加路径),首先是获取数据库引用:
[java] view plaincopy
String DATABASE_PATH = this.getFilesDir().getAbsolutePath() + "/testdb4o";  
        //获取指定路径下数据库引用  
        ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), DATABASE_PATH);  
[java] view plaincopy
//插入  
       Student student1 = new Student("Ryan", 24);  
       Student student2 = new Student("TangRen", 23);  
       db.store(student1);  
       db.store(student2);  
       db.commit();//注意别忘了commit,否则数据更改不生效,机制类似一般的SQL数据库  
[java] view plaincopy
//查询  
        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());  
        }  
插入成功,输出结果如下:


[java] view plaincopy
//删除指定对象(删除全部则不设置条件)  
       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();  
输出结果:




[java] view plaincopy
//修改  
        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下载


对Android&IOS感兴趣的朋友可以加入我们的讨论QQ群,在这里,我们只讨论干货:
iOS群:220223507
Android群:282552849


欢迎关注我的新浪微博和我交流:@唐韧_Ryan


这是群里一个朋友写的总结,大家可以参考下:http://blog.csdn.net/u011290399/article/details/9263777
本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号