`
mmdev
  • 浏览: 12914110 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Java实现嵌入式数据库(文本数据库)代码实例

 
阅读更多
在Java中虽然提供了良好的数据库支持并有大量的第三方持久层框架作为辅助,但相对其他语言来讲在Java中使用数据库连接时造成的系统损耗也会比较多。因此对于数据吞吐量较少的系统而言,有时放弃数据库而改为使用本地文件来存储资料反而是种较好的选择,比如我们对于Java程序的启动配置通常会使用Properties及dom4j等从文本文件或xml文档读取数据,而不会一股脑丢到数据库中,这几乎已经是一种常识。

但就功能而言,Properties的操作功能仅仅局限在对引入的文件进行操作,虽然比较适合简单的文件读写操作,却远没有xml那么强大,而且多配置时可能需要多个文件才能清楚搞定设置,否则会乱得一塌糊涂。但就xml而言,即便dom4j或jdom等java中常用的xml操作组件功能已很强大,但大量元素的出现又令其操作没有Properties调用来的直观,而且在文件较小时xml文档的处理速度也会较纯文本文件有不必要的浪费。

但若为了保存那少得可怜的数据而动用如access或sqllite等小型关系数据库,又未免太兴师动众,得不偿失。

比如我的loonframework-game框架,其本身是一个java2d游戏开发组件,所以应该提供一个用户可以使用的持久存储环境,用于存储地图,对话,分支剧情等等。而无论使用Properties或xml,我感觉都有某些局限性,不尽如人意(我很懒~)。

这时候如果能有一个组件即象Properties那么易于操作,而又象xml那样能处理较为复杂的数据,又兼备某些数据库特性就好了。

但我手头却没有那么方便的东西,于是只好响应在延安的号召“自己动手,丰衣足食”了。

源码下载地址如下:http://download.csdn.net/source/475512

这是一个简单的嵌入式数据库java实现,利用纯文本方式进行数据库操作,就性质上讲与Berkeley DB类似,并非标准的关系型数据库,不支持sql语句,全部操作采用api实现.但目前功能还较为简陋,以每一个表格代表一个文件中的存储区域,虽然有数据类型的概念,但是目前每种数据类型仅允许对应一个表,即在构建表时确定,不能混用。已经支持CRUD等基本操作,就效率上讲要较xml文档操作为高。

包内容如下:



使用示例如下:

分享到:
评论

相关推荐

    javaSE代码实例

    5.2 Java中数组的实现机制 61 5.3 数组的初始化 63 5.3.1 默认初始化 63 5.3.2 利用循环初始化 64 5.3.3 枚举初始化 66 5.4 数组的相互赋值 67 5.4.1 基本类型数组赋值规则 67 5.4.2 引用型数组赋值...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     ROBYN SANDS 思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert ...

    精通Qt4编程(第二版)源代码

    \12.3.1 使用嵌入式数据库 310 \12.3.2 使用Oracle数据库 313 \12.4 小结 325 \第13章 Qt的模板库和工具类 326 \13.1 Qt容器类 326 \13.1.1 QList、QLinkedList和QVector 327 \13.1.2 QMap、QHash 332 \13.2 ...

    精通qt4编程(源代码)

    \12.3.1 使用嵌入式数据库 310 \12.3.2 使用Oracle数据库 313 \12.4 小结 325 \第13章 Qt的模板库和工具类 326 \13.1 Qt容器类 326 \13.1.1 QList、QLinkedList和QVector 327 \13.1.2 QMap、QHash 332 \13.2 QString...

    MySQL 5.1中文手冊

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MYSQL中文手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. ...

    新版Android开发教程.rar

    � 源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发 出 更具差异性的应用。 � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要...

    量化器:Quanta是一个开源社交媒体(Fediverse)平台,用于Wiki,微博客,协作,发布,安全消息传递,文件共享和视频音频共享。 基于浏览器,并用Java和TypeScript编写

    广达网络平台欢迎来到Fediverse! 加入Fediverse!...实时测试实例: 技术堆栈摘要后端(服务器端) Java语言Spring Boot Web应用在嵌入式Tomcat中运行使用ajax / JSON进行所有浏览器调用的类似REST

    mysql官方中文参考手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MySQL 5.1参考手册中文版

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. ...

    MySQL 5.1参考手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MySQL5.1参考手册官方简体中文版

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,...

    MySQL 5.1参考手册 (中文版)

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MySQL 5.1官方简体中文参考手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    mysql5.1中文手册

    怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 ...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Java EE 框架..................................................................................................................................................................................1 ...

Global site tag (gtag.js) - Google Analytics