【数据库–db4o 介绍】

【数据库–db4o 介绍】一、db4o 简介db4o(databaseforobjects)wasanembeddableopensourceobjectdatabaseforJavaand.NETdevelopers.Itwasdeveloped,commerciallylicensedandsupportedbyActian.InOctober2014,Ac…

大家好,又见面了,我是你们的朋友全栈君。

一、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 介绍】
 

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

【数据库--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.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162619.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • string转jsonstring_java json转map

    string转jsonstring_java json转mapJava中Json转string方法Java利用Json-lib包进行json对象转换成stringJSONArray转换string方法实例publicstaticvoidmain(String[]args)throwsJSONException{undefined//创建JSONObject对象JSONObjectjson=newJSONObject();//向json中添加数据json.put(“username”,”wanglihong”);json

  • 第一课:什么是树莓派[通俗易懂]

    第一课:什么是树莓派[通俗易懂]楔子我对树莓派是情有独钟,不但在做这个方面的教学,而且录制了些教学视频,现在计划做几个树莓派的博客专栏,以弥补视频教学的不足。这是《树莓派系统专栏》的第一课,叫什么是树莓派(这也是我教学视频的第一课),希望给第一次接触树莓派的人有一个感性认识。树莓派长什么样我们要搞清楚一个刚接触的东西,最直观的是看它的实物,下面我就先上一张图。我希望上最好的图片给大家,包括专业和美感,这张图是树莓派官网…

  • java stack deque_java如何实现栈

    java stack deque_java如何实现栈Java中的栈Stack、Deque、ArrayDeque、LinkedList的区别Stack类那么为什么我们不选择Stack呐?(两个主要原因)那么我们应该使用ArrayDeque还是LinkedList呐?总结Stack类Java中Stack类底层是数组实现的线程安全的栈。先进后出,常用操作是push/pop/peek而Deque是更加适用的双端队列接口,其通过ArrayDeque/LinkedList初始化实现Deque<Integer>stack=newArrayDeq

  • linux rpm 卸载 java_linux下用rpm 安装卸载jdk「建议收藏」

    linux rpm 卸载 java_linux下用rpm 安装卸载jdk「建议收藏」1、如果linux是centos的话,请先卸载openjdkjava-version,会有下面的信息:卸载默认的用root用户登陆到系统,打开一个终端输入#rpm-qa|grepgcj显示内容其中包含下面两行信息#java-1.4.2-gcj-compat-1.4.2.0-27jpp#java-1.4.2-gcj-compat-devel-l.4.2.0-27jpp卸载#rpm-…

  • 用js在控制台打印html页面,vue 使用print-js 打印html页面

    用js在控制台打印html页面,vue 使用print-js 打印html页面Print.js官网官网优点:可以打印多种格式的内容(pdf、json、html等)打印json时可以添加表头。打印html页时可以继承原有页面的样式,局部打印,过滤掉要打印的元素,及其方便。一、vue安装命令:npminstallprint-js–save二、引入这个引入不需要在main.js中,直接在使用的.vue中引入即可这里颜色虽然是灰色,但是也要添加,否则会报错。三、编码我这里…

    2022年10月21日
  • Android 时钟TextClock 使用及源码分析

    Android 时钟TextClock 使用及源码分析TextClock可以将当前日期和/或时间显示为格式化字符串。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号