博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)直接保存对象的数据库——db4o
阅读量:5750 次
发布时间:2019-06-18

本文共 1961 字,大约阅读时间需要 6 分钟。

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

今天主要介绍下,在java开发中,利用第三方开源项目如何直接将对象保存到数据库,而非将对象中属性拆解出来后再保存,这样操作起来更快捷、更直观。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
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
resultObjectSet = db.queryByExample(deleteOBJ); while(resultObjectSet.hasNext()){ Student ss = resultObjectSet.next(); db.delete(ss); } db.commit();

  

输出结果:

 

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

  输出结果:

 

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

 

这是群里一个朋友写的总结,大家可以参考下:

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

转载于:https://www.cnblogs.com/greywolf/p/3252159.html

你可能感兴趣的文章
java 多线程踩过的坑
查看>>
性能优化
查看>>
ggplot2 geom相关设置—点重合处理(jitter)
查看>>
部署Replica Sets及查看相关配置
查看>>
倒序显示数组(从右往左)
查看>>
STL学习笔记-- queue
查看>>
关于unity rect的坑
查看>>
LeetCode2_Evaluate Reverse Polish Notation评估逆波兰表达式(栈)
查看>>
文献综述二:UML技术在行业资源平台系统建模中的应用
查看>>
阿里云服务器 linux下载 jdk
查看>>
Swift 学习 用 swift 调用 oc
查看>>
第三章 Python 的容器: 列表、元组、字典与集合
查看>>
struct timeval
查看>>
微信小程序开发 -- 点击右上角实现转发功能
查看>>
问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
查看>>
openURL的使用
查看>>
与MS Project相关的两个项目
查看>>
[转载]ASP.NET MVC Music Store教程(1):概述和新项目
查看>>
css实现单行,多行文本溢出显示省略号……
查看>>
使用 SharpSvn 执行 svn 操作的Demo
查看>>