• (转)直接保存对象的数据库——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

  • 相关阅读:
    [Go] Slices vs Array
    [置顶] SpecDD系列:“完成” 的定义
    关于游戏开发的一点随笔
    提高效率 常用的几个xcode快捷键
    关于android 自己实现 back键 home键
    (组合数学3.1.1.1)POJ 1146 ID Codes(字典序法)
    [置顶] c# asp.net 修改webconfig文件 配置
    python数据类型和3个重要函数
    jdk环境变量配置
    VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库
  • 原文地址:https://www.cnblogs.com/greywolf/p/3252159.html
Copyright © 2020-2023  润新知