一、db4o简介

db4o (database for objects) was an embeddable open source object database for Java and .NET developers. It was developed, commercially licensed and supported by Actian. In October 2014, Actian declined to continue to actively pursue and promote the commercial db4o product offering for new customers

db4o 是一个开源的纯面向对象数据库引擎,对于 Java 与 .NET 开发者来说都是一个简单易用的对象持久化工具。db4o 的目标是提供一个功能强大的,适合嵌入的数据库引擎,可以工作在设备,移动产品,桌面以及服务器等各种平台。本系列文章将给我们带来一场面向对象数据库的风暴。

二、特性

db4o 的目标是提供一个功能强大的,适合嵌入的数据库引擎,可以工作在设备,移动产品,桌面以及服务器等各种平台。主要特性如下:

开源模式。与其他 ODBMS 不同,db4o 为开源软件,通过开源社区的力量驱动开发 db4o 产品。

原生数据库。db4o 是 100% 原生的面向对象数据库,直接使用编程语言来操作数据库。程序员无需进行 OR 映射来存储对象,大大节省了程序员在存储数据的开发时间。

高性能。 db4o 比采用 Hibernate/MySQL 方案在某些测试线路上速度高出 44 倍之多!并且安装简单,仅仅需要 400Kb 左右的 .jar 或 .dll 库文件。

易嵌入。使用 db4o 仅需引入 400 多 k 的 jar 文件或是 dll 文件,内存消耗极小。

零管理。使用 db4o 无需 DBA,实现零管理。

支持多种平台。db4o 支持从 Java 1.1 到 Java 5.0,此外还支持 .NET 、 CompactFramework 、 Mono 等 .NET 平台,也可以运行在 CDC 、 PersonalProfile 、 Symbian 、 Savaje 以及 Zaurus 这种支持反射的 J2ME 方言环境中,还可以运行在 CLDC 、 MIDP 、 RIM/Blackberry 、 Palm OS 这种不支持反射的 J2ME 环境中。

Features

One-line-of-code database

db4o contains a function to store any object:

objectContainer.store(new SomeClass());

SomeClass here does not require any interface implementations, annotations or attributes added. It can be any application class including third-party classes contained in referenced libraries.

All field objects (including collections) are saved automatically. Special cases can be handled through writing custom type handlers.[2]

Embeddable

db4o is designed to be embedded in clients or other software components invisible to the end user. Thus, db4o needs no separate installation mechanism, but comes as a single library file with a footprint of around 670kB in the .NET version and around 1MB in the Java version.

Client-server mode

Client/server version allows db4o to communicate between client and server-side applications. It uses TCP/IP for client-server communication and allows to configure port number. Communication is implemented through messaging.

Due to a feature referred to as "Generic Reflection", db4o can work without implementing persistent classes on the server. However, this mode has limitations.[3]

Dynamic schema evolution

db4o supports automatic object schema evolution for the basic class model changes (field name deletion/addition). More complex class model modifications, like field name change, field type change, hierarchy move are not automated out-of-the box, but can be automated by writing small utility update program (see documentation).

This feature can be viewed as an advantage over relational model, where any change in the schema results in mostly manual code review and upgrade to match the schema changes.

Native queries

Rather than using string-based APIs (such as SQL, OQL, JDOQL, EJB QL, and SODA), Native Queries (NQ) allow developers to simply use the programming language itself (e.g., Java, C#, or VB.NET) to access the database and thus avoid a constant, productivity-reducing context switch between programming language and data access API. Native Queries also provide type safety, as well as remove the need to sanitize against code injection (see SQL Injection).

LINQ

LINQ support is fully integrated in db4o for .NET version 3.5. LINQ allows the creation of object-oriented queries of any complexity with the benefit of compile-time checking, IDE Intellisense integration and automated refactoring.

Due to integration with some open-source libraries db4o also allows optimized LINQ queries on Compact Framework.

LINQ can be used both against relational and object data storage, thus providing a bridge between them. It can also be used as an abstraction layer, allowing to easily switch the underlying database technology.

【数据库--db4o 介绍】相关推荐

  1. Android 对象型数据库 db4o

    你有木有烦恼过数据库的crud,有木有对sql很烦躁,Android虽然有封装好的ContentProvider,但是操作还是有点复杂了.不是很喜欢. 这两天花时间整了下DB4O,确实很不错,不用建表 ...

  2. 开源面向对象数据库 db4o 之旅: 深入 db4o “db4o 之旅(三)”

    前言 在开源面向对象数据库 db4o 之旅 系列文章的第 1 部分:初识 db4o 中,作者介绍了 db4o 的历史和现状,应用领域,以及和 ORM 等的比较: 在第 2 部分:db4o 查询方式中, ...

  3. 开源面向对象数据库 db4o 之旅: db4o 查询方式“db4o 之旅(二)”

    前言 在 开源面向对象数据库 db4o 之旅 系列文章的第一部分:初识 db4o 中,作者介绍了 db4o 的历史和现状,应用领域,以及和 ORM 等的比较.在这篇文章中,作者将会介绍 db4o 的安 ...

  4. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  5. 数据库的介绍、分类、作用和特点

    1. 数据库的介绍 数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加.修改.删除.查询等操作. [在数据库中输错,按住"ctrl+c"重 ...

  6. mysql数据库引擎介绍

    mysql数据库引擎介绍 你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HE ...

  7. java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解

    sqlite数据库的介绍与java操作sqlite的实例讲解 发布时间:2020-10-03 05:40:34 来源:脚本之家 阅读:92 作者:Lee_Tech sqlite是啥? 1.一种轻型数据 ...

  8. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软 ...

  9. MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

    深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下   你能用的数据库引擎取决于mysql在 ...

  10. 1.MySQL数据库的介绍

    1.MySQL数据库的介绍 什么是数据库 数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库 专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写 ...

最新文章

  1. [Android]webview直接加载网页允许JS,进度条,当前应用内跳转
  2. JS标签的各种事件的举例
  3. Unbutu下安装mysql服务并允许远程登录
  4. 【CodeForces - 1038C】Gambling (博弈问题,优先队列模拟,贪心)
  5. linux命令行大全 笔记,《Linux命令行大全》读书笔记
  6. 【转载】指导教师的WZ132
  7. 漫步最优化三十一——梯度法
  8. Connection timed out: connect; Communications link failure
  9. linux rabbitmq 远程登录
  10. 【中台实践】滴滴大数据研发中台的最佳实践.pdf(附下载链接)
  11. UnityShader20.1:CommandBuffer初见(下)
  12. 单片机重要组成部分还有什么,引脚封装分布知识讲解(一)
  13. 淘宝云梯分布式计算平台架构
  14. 学生选课管理系统(下)
  15. 狂神说shiro案例源码
  16. 厂房自控系统设计方案
  17. 社交网络时代下的网络营销
  18. 松翰SN8P2511 SOP8单片机 可代烧录 提供单片机方案开发 单片机解密
  19. 目标群体是什么意思_什么是目标客户群体?求解
  20. 计算机语言收入排名,全球人均收入排名美元_计算机语言收入排名

热门文章

  1. 目标跟踪算法MOSSE笔记
  2. 697小说源码PC端+手机端+采集工具(源码带3000本小说的数据)
  3. JavaEE之Filter过滤器、登录状态验证、敏感词汇过滤
  4. java后端简历项目经历_简历上的项目经历怎么写 ?这 3 条原则不可忽视 !
  5. 简历javaweb项目描述怎么写_JavaWeb开发项目经验简历范文
  6. 企业信息安全整体架构
  7. android的天气和时钟部件,时钟天气小部件
  8. linux tar解压bin文件,linux下 tar解压 gz解压 bz2等各种解压文件使用方法
  9. ider中的html元素背景操作,idea怎么设置背景颜色
  10. [软件工程] 面向对象方法学引论