Db4o数据库:快速入门「建议收藏」

Db4o数据库:快速入门「建议收藏」偶遇Db4o,非常有感觉,就推荐给大家吧。它是一种开源对象数据库。百分之百的面对对象,操作数据库就像操作对象一样简单快速。它有Java和.Net两个版本,在其官网可下载安装包及源代码。以.Net版本为例,给大家介绍Db4o的使用。安装完成后,在omn文件夹下,有一个VisualStudio的插件(ObjectManagerEnterprise),利用它可以像其他数据库工具一样,可以快速访问对

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

偶遇Db4o,非常有感觉,就推荐给大家吧。它是一种开源对象数据库。百分之百的面对对象,操作数据库就像操作对象一样简单快速。它有Java和.Net两个版本,在其官网可下载安装包及源代码。以.Net版本为例,给大家介绍Db4o的使用。
安装完成后,在omn文件夹下,有一个Visual Studio的插件(ObjectManagerEnterprise),利用它可以像其他数据库工具一样,可以快速访问对象数据库。

创建数据库

	void CreateOrOpenDb()
	{
		string DbFile = "db4o.yap";
		IObjectContainer Container = Db4oEmbedded.OpenFile(DbFile);
	}

这里我们认识两个新朋友:
IObjectContainer : 它可以代表一个数据库对象或者数据库连接对象。它提供数据库的查询,添加,修改,删除,事务等方法。以后我们会详细介绍这些方法。
Db4oEmbedded :  在单机模式,可以使用它提供的静态的方法,创建或打开数据库。在网络模式,可以使用它提供的静态的方法,连接数据库服务。

存储对象

	Employee _employee = new Employee();
	_employee.Name = "Sunth";
	Container.Store(_employee);

利用IObjectContainer提供的Store()方法,进行存储操作。


查询对象

	IObjectSet Query = Container.QueryByExample(new Employee { Name="Sunth" });
	_employee = (Employee)Query.Next();

Db4o提供了4种模式,在这只演示最简单的一种,Query-By-Example(简称QBE)根据模板进行查询

利用IObjectContainer提供的QueryByExample()方法,进行简单的查询操作。(下一篇博客将细谈查询)

更新对象

	IObjectSet Query = Container.QueryByExample(new Employee { Name="Sunth" });
	_employee = (Employee)Query.Next();
	_employee.Name = "Tom";
	Container.Store(_employee);

更新操作还是利用IObjectContainer提供的Store()方法。

删除对象

	IObjectSet Query = Container.QueryByExample(new Employee { Name="Sunth" });
	_employee = (Employee)Query.Next();
	Container.Delete(_employee);

利用IObjectContainer提供的Delete()方法,进行删除操作;


结束语

第一篇就写这么多吧,是不是很简单? 下一篇将细谈查询。 祝大家快乐。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162588.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • listbox里面添加WrapPanel ,支持自适应换行[通俗易懂]

    listbox里面添加WrapPanel ,支持自适应换行[通俗易懂]listbox大家都会用,如果要让它支持换行操作还必须加上ListBox.ItemsPanelItemsPanelTemplatetoolkit:WrapPanel//ItemsPanelTemplate/ListBox.ItemsPanel但是也有问题了,必须设置WrapPanel的宽度,也就是不能自适应宽度去调整每一行的宽度,这样的后果可能会出现要么全部推在一起,要么要有横向的滚动…

    2022年7月22日
    12
  • Redirecting to /bin/systemctl start mysqld.service Failed to start mysqld.service: Unit not found.

    Redirecting to /bin/systemctl start mysqld.service Failed to start mysqld.service: Unit not found.为了在本地服务器下搭建svn,在CentOS中安装mysql,使用yuminstallmysql-servermysqlmysql-devel安装mysql却无法启动mysql服务使用servicemysqldstart在CentOS7中启动mysql报错:在提及该错误前,我们先提到一个mysql发展及当期背景:MySQL是一种开放源代码的关系型数据库管理系统(RDBMS………

    2022年7月27日
    3
  • 三次握手几个rtt_tcp三次握手详细过程

    三次握手几个rtt_tcp三次握手详细过程一、RST包、本人学习后总结:RST包用于强制关闭TCP链接。TCP连接关闭的正常方法是四次握手。但四次握手不是关闭TCP连接的唯一方法.有时,如果主机需要尽快关闭连接(或连接超时,端口或主机不可达),RST(Reset)包将被发送.注意,由于RST包不是TCP连接中的必须部分,可以只发送RST包(即不带ACK标记).但在正常的TCP连接中RST包可以带ACK确认标记。 二、三次握手Th…

    2022年10月1日
    3
  • org.springframework.web.context.ContextLoaderListener

    org.springframework.web.context.ContextLoaderListener

    2021年7月17日
    67
  • c语言控制输出格式-小数点位数

    c语言控制输出格式-小数点位数控制小数位数就是通过输出格式说明符来规定的printf(%m.nf)表示打印至少m个字符宽度(包括整数、小数点和小数部分的位数),n位小数1.printf(“%3.0f”,floatNum):不保留小数说明:%3.0f表明待打印的浮点数(floatNum)至少占3个字符宽,且不带小数点和小数部分,整数部分至少占3个位宽;注意:这里的3只代表整数部分至少占3位,舍弃小数点和小数点…

    2022年7月24日
    44
  • 表空间的状态(二) – read/write

    表空间的状态(二) – read/write

    2022年1月22日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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