Serializable,脱离对DB的束缚

一般意义上的软件开发,至少会包含两部分代码和数据,而数据一般会存放在SQL Server, Oracel, My SQL这样的数据库中,或者保存到Excel中,而Serializable却可以把对象序列化存储在硬盘中,虽然只能应用于轻量级数据的软件开发,但确实是脱离的对DB的束缚,至少不用在机器上安装SQL Server,再执行一批SQL Script,来创建表,存储过程之类的。

代码也很简单,就是在需要序列化的对象上面添加特性[Serializable]的标签

1     [Serializable]
2     public class DBObject
3     {
4         public List<DataObject> dataItems;
5         public int Id;
6         public string Name;
7     }

存储代码,这里的文件名称可以任意取,例如"MyDBFile.Bin"也可以:

                DBObject dBobj=new DBObject();                dBobj=.....                IFormatter formatter = new BinaryFormatter();
                Stream stream = new FileStream("MyDBFile.DB", FileMode.Create,
                FileAccess.Write, FileShare.None);
                formatter.Serialize(stream, dBObj);
                stream.Close();

读取代码,拿到dBobj之后,你想怎么用都行了,呵呵:):

                    DBObject dBobj=new DBObject();                    IFormatter formatter = new BinaryFormatter();
                    Stream stream = new FileStream("MyDBFile.DB, FileMode.Open,
                    FileAccess.Read, FileShare.Read);
                    dBobj = (DBObject)formatter.Deserialize(stream);
                    stream.Close();
时间: 2024-08-17 05:18:49

Serializable,脱离对DB的束缚的相关文章

如何将Android数据库操作通用化(三)

概述 悠悠绿水傍林侵日落观山四望回 幽林古寺孤明月冷井寒泉碧映台 鸥飞满浦渔舟泛鹤伴闲亭仙客来 游径踏花烟上走流溪远棹一篷开 概述 一个不小心都写了三篇了,也不知道大家还看得懂不?如果看不懂最好给我留个言,我好下一次改正. 接着上次的说,准备工作都已经做好了,现在咱们就要开始着手解决阻挡Android数据库操作通用化的五个问题了. 我们先回顾一下问题: 问题1:表名的获取 问题2:如何将实体中的数据,按照对应关系导入到数据库中 问题3:明确实体中主键是谁?获取到主键中封装的值 问题4:如何将数据

java笔记整理

Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, Ejb, java和模式 Linux/Unix笔记 inode :存储编号(地址) ls -k:查看磁盘分区 ls -li:显示当前文件的inode号. 目录的大小跟文件的大小有关,跟目录里的文件(目录)数量无关. 一行多个命令的话,中间用分号分开.如:pwd;cal;date last | grep

【Android数据库优化】利用注解实现SQLite通用框架抽取

在开发Android应用的过程中,少不了要用到SQLite数据库操作,各种增删查改...一般看来,对于不同的实体类的数据库操作,貌似我们只能使用不同的"增删查改"方法来实现,本次的想法就是,能不能抽取出一个通用的框架,使得对于不同的实体类的数据库操作,可以使用同一个接口的实现来做...废话少说,进入正题. 一.普通的数据库操作的实现 现在有一个Book的类,里面有三个成员变量,id,tittle和summary,其中id将会作为主键,且自增.Book代码如下: package com.

【vim小记】vim的高效移动

我还是推荐所有刚入门vim的朋友先去用vimtutor练习,然后去看vim的帮助文档,写的十分仔细,而且可以马上实战,见效很快,以下的很多示意图都是vim帮助文档里的例子,我觉得很好,就拿出来了. vim之所以高效的原因是因为它有一套高效的移动机制,作为学vim,可以说这一部分你不得不看,这可以大大减少了文章内移动的击键数,而且脱离的鼠标的束缚,让双手基本不用离开键盘操作. 一.VIM的基本移动 vim的基本操作无非是上(j)下(k)左(h)右(l)  ,这个大家很熟悉了,当然,键盘的上下左右也

18-感知机模型在经典数据集鸢尾花上的应用

今天去新宿舍打扫了一天,一切都是新的.立秋了,天气也凉爽起来,让人可以静下心来,不再那么浮躁.如果用心生活,时间是会慢下来的.你会享受多出N倍的人生.浮光掠影,追求效率,牺牲的是本该属于自己的趣味盎然的过程.自从脱离大公司的束缚,不再有周末和下班的概念.然而工作成了一种打怪升级的冒险历程,有点类似游戏.周一不再如上坟,工作和休息也不再泾渭分明.不到两年时间,比在大公司工作十年的经历更值得回忆.有时后悔在大公司呆太久了,单调的生活真的是杀时间的利器,会让你觉得逝去年华如流水,然而并没有什么值得追忆

忘记数据库

忘记数据库 前面写了这么多,很大程度上就是为了这一章做准备.面向对象或者领域驱动,最重要的一点就是要忘记数据库!我花了很长很长的时间,才理解了这一点,从而真正的迈向一个崭新的天地:而后,我又花了很长很长的时间,才勉强做到这一点:我希望,有一天,这将不再是一个问题,我不需要考虑这一点…… 为什么业务层这么薄 三层架构流行起来之后,我们很清楚的知道UI层负责页面交互并调用下一层,也知道DAL层就是和数据库打交道.但BLL层?什么才算是“业务逻辑”?有各种各样的解释,但这些不都是sql做的么?对于绝大

制作符合平台的CodeSmith代码生产模版

先看生产的结果 /////////////////////////////////////////////////////////////////////////////////////// // File: StandardizationProcess .cs // Description: Enter summary here after generation. // --------------------- // Copyright 谈勇 2015 Our Client // -----

音视频技术发展-数字电视

在如今数字电视的产业链中,数字电视机顶盒(STB)是一个既简单又复杂的消费类终端产品.说其简单是因为生产出一个机顶盒是十分简单的,行业准入的成本也不是十分高昂:说其复杂是因为要将机顶盒做得稳定可靠且功能强大,的确是一件十分复杂繁琐的工作,特别是在软件系统方面,由于STB性能的局限性和使用的实时性,它无法像PC那样可以支撑庞大的运行环境与程序,也缺乏完善的开发工具,这对软件开发者而言是一件很具有挑战性的工作. 机顶盒的硬件结构 从数字电视机顶盒的构成上看,主要包括硬件和软件两大部分.从结构上看,机

ASP.NET 5 改名 ASP.NET Core 1.0

今天,Scott Hanselman在其博客上宣布<ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0>,ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“ASP.NET 5”确实让人感觉这是ASP.NET 4.6的升级版,比其功能更加强大,未来会替代ASP.NET 4.6.其实不是的,因为“ASP.NET 5”是另起炉灶开发,和 ASP.NET 4.6是并行独立的关系. 所在现