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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 可变参数列表

    可变参数列表

    2021年10月31日
    45
  • DEDECMS点击主栏目默认显示第一个子栏目列表的方法

    DEDECMS点击主栏目默认显示第一个子栏目列表的方法

    2021年9月24日
    56
  • matlab输出矩阵格式_matlab中uint8函数用法

    matlab输出矩阵格式_matlab中uint8函数用法1、uint8与doubledouble函数只是将读入图像的uint8数据转换为double类型,一般不使用;常用的是im2double函数,将uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double。因此I2=im2dou…

    2025年12月14日
    3
  • 转 pages validateRequest =”false「建议收藏」

    转 pages validateRequest =”false「建议收藏」二、注意1、在web.config中system.web节加入:否则会出现如下错误:从客户端(Content=”说明:请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在Page指令或配置节中设置validateRequest=false可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。异常详细信息:System.Web.HttpRequestValidationE

    2022年6月10日
    41
  • 2013年上海交大学生论文致谢[通俗易懂]

    2013年上海交大学生论文致谢[通俗易懂]公元两千零七年,岁次丁亥,仲夏之月,联科论文乃告杀青。辞穷理微,未敢称凌云之作,镂心鸟迹,得不效相如之叹?于是凭窗抱膝,寄情遐思。忆吾弱冠之龄入交通大学,意气方遒。尔来春秋有八,于今毕业,年齿已趋而立。户牅之外,万物滋荣,景致阙如昨日,堂室之内,联科已有苍颜白发矣。文凭两纸霜鬓两行,黄粱一枕功名一场,此皆寻常人生,乏善可陈。然联科身发受之父母,道德受之母校,学问受之师长,育教之恩,虽陨首结草不能报

    2022年5月15日
    31
  • 关闭令人抓狂的ESlint 语法检测配置方法

    关闭令人抓狂的ESlint 语法检测配置方法刚刚开始的小伙伴是不是空格报错少一行报错各种错?是不是觉得快被限制的失去了自由的思绪了?受折磨后找到了不错的文章来取消eslint语法检测限制,作为学习笔记摘自segmentfault其实我并不反对这些语法检测,但是像许多反个人意愿的那就真的不得不吐槽了,比如vue-cli脚手架创建的默认eslint规则:代码末尾不能加分号;代码中不能存在多行空行tab键

    2022年6月17日
    61

发表回复

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

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