惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
The Last Watchdog
The Last Watchdog
TaoSecurity Blog
TaoSecurity Blog
Schneier on Security
Schneier on Security
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
O
OpenAI News
W
WeLiveSecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
P
Privacy & Cybersecurity Law Blog
K
Kaspersky official blog
S
Security @ Cisco Blogs
Latest news
Latest news
AWS News Blog
AWS News Blog
U
Unit 42
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Scott Helme
Scott Helme
博客园 - 司徒正美
B
Blog RSS Feed
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker
Google Online Security Blog
Google Online Security Blog
Jina AI
Jina AI
aimingoo的专栏
aimingoo的专栏
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Last Week in AI
Last Week in AI
月光博客
月光博客
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
小众软件
小众软件

博客园 - 东成西就

重灾面前,我们有力量面对一切困难! 试一下 使用CAB中EventBroker碰到困难,暂记于此! 在.NET中动态编译与执行脚本文件 db4o学习笔记(五)、处理结构化对象上 db4o学习笔记(四)、db4o查询详解续 db4o学习笔记(三)、db4o查询详解 db4o学习笔记(二)、第一次亲密接触 LightweightCTI架构设计(5) LightweightCTI架构设计(4) LightweightCTI架构设计(3) LightweightCTI架构设计(2) LightweightCTI架构设计(1) LightweightCTI开发实录(5)板卡适配器概述 LightweightCTI开发实录(4)系统如何工作 LightweightCTI开发实录(3)分析之前 系分考试准备的论文(6):论系统设计中对用户需求的把握 LightweightCTI开发实录(2)项目计划 LightweightCTI开发实录(1) 缘由
db4o学习笔记(一)、db4o概览
东成西就 · 2006-11-10 · via 博客园 - 东成西就

db4o是一种java、.net及Mono原生的面向对象的开源的数据库引擎,使用db4o十分的简单你只需要在你的项目中加入db4o.dll的引用即可,db4o也是一种轻量级的数据库引擎要运行db4o你只需要上述dll文件就可以了。为什么要使用db4o,其实只需要看一下它的客户资料列表就清楚了,目前一些世界级的领导厂商如 BMW, Boeing, Bosch, Hertz, IBM, Intel, Ricoh, and Seagate都是它的客户,面对这样一串列表我们没有理由不选择它了Stick out tongue

  在进行深入学习db4o之前,首先来看看它的相关组件及家族成员。

  db4o数据库引擎

  db4o数据库引擎只包含一个单独的dll文件,这便是其你利用它进行系统开发的全部。如果你是采用安装方式的话可以在安装文件夹下的/db4o-5.0/dll中找到它。目前针对微软不同版本的.net框架主要有两个版本的db4o版本,它们分别对应于.net framework 1.0/1.1及.net framework 2.0,在使用时我们应该选择正确的db4o版本。

  

/db4o-5.0/dll/net/db4o.dll
  is the standard db4o engine for the .NET framework.

  /db4o-5.0/dll/compact/db4o.dll
  is built for the .NET CompactFramework.

  写了这么多让我们正式进入db4o之旅吧。在使用db4o时需要使用到的两个主要的命名空间是com.db4o以及com.db4o.query,在com.db4o命名空间中包含了我们使用db4o几乎所有的功能,其中又以com.db4o.Db4o和comd.db4o.ObjectContainer特别重要。

  com.db4o.Db4o工厂是db4o之旅的入口,此类中包含的一些静态方法允许我们打开一个数据库文件,启动一个服务器或连接到已有的服务器(没有想到吧小小几百K的数据库引擎也支持C/S访问方式),同时也允许在打开数据库文件之前进行相关的配置。

  另外一个我们在99%的情况下都会使用的接口是com.db4o.ObjectContainer,这就是我们的db4o数据库。一个ObjectContainer即可以是单用户模式下的数据库,也可以是C/S模式下的数据库对象。ObjectContainer都拥有一个自己的事务,后续所有的工作都在事务管理下进行,当我们使用Commit()或Rollback()提交/回滚一个事务时,db4o将立即开始一个新事务。在使用db4o时请确保ObjectContainer一直打开着,如果不小心关闭了ObjectContainer,内存中数据库引用的所有对象将丢失。

  在com.db4o.ext和com.db4o.config中包含了一些我们对ObjectContainer进行配置或其它额外操作的类、对象。在com.db4o.query中则包含了用于构建原生查询(Native Queries其它一些资料译为本地化查询)的谓词类,db4o原生查询接口是数据库引擎主要的和我们首先查询接口。