自我的前半生:唐晶花几万块庆朋友吃喝玩乐时,而罗子群却还为两三千的房租发愁……你是哪一个?

By admin in bet体育在线网址手机版 on 2019年1月13日

事先,不怕“重复发明轮子”的自身,搞了一个“PDF.NET框架”,即“PWMIS数据开发框架”(脚下早就开源),自己用不同通常的法子设计了一个实体类基类,然后又计划了操作实体类的语法–“OQL表达式”,一套类似SQL的对象化的操作实体类的语法,接着又实现了实体类的“二进制体系化”,如今突发奇想,何不将这个趋势后的实体类,搞成一个数据库?重新走DBMS的老路分明没有竞争力,最近NoSql正流行,这自己就搞个内存数据库吧!

     
当我们在见到电视机剧《我的前半生》时,所展示的都是很实际的题材,并不是剧情狗血的肥皂偶像剧。无论是剧情如故实力派演员,都得到了很大一批粉丝。在请客方面,无论是事业有成的贺涵仍然唐晶,都得以随便花几万块消费。对于这几万块,不务正业的罗子群受到了惊吓,自己却还为两三千的房租发愁。这也是一个很现实的社谋面貌,大家如何去做才能改变这种窘迫呢?

 


骨子里,说到做“内存数据库”,概念大了些,我个人能力有限,要做也不得不做个“概念整合”,起初想法是,数据总体以“对象”的款式存在内存中,用Linq
To
Object的章程,来操作这一个“数据”,将数据保存到一个持久化媒体中,比如磁盘文件中,开一个后台线程逐渐去写,而前台的数量运用是可以忍受主大量并发操作的。想法有了,立即开工!

剧中人物背景

     
先来看望剧中的人员背景。贺涵和唐晶都是高学历,大商店里的实力派,薪水待遇特别好。女主罗子君却是大学毕业后十年的家庭主妇,她二嫂罗子群和堂弟白光不务正业,都是靠着借二哥陈俊生的钱吃饭。最令人不可思议的是,女主大嫂和表哥,整日都是吵架,没有工作,过着鸡飞狗跳的光景。在唐晶和罗子君还联手读书这会,唐晶还每每去罗子君家吃饭。才过了十年,罗子君这些家中主妇丝毫未曾发展,而唐晶却已经是合作社的高层。像罗子群感慨,旁人轻松拿几万块钱请客,自己还在色会层底挣扎,为了两三千块的房租发愁。

     
其实,大家得以经过贺涵和唐晶带罗子君第一次正式参观陈俊生所在的商号,一天的干活,如何忙得像个停不下俩的陀螺时,罗子君才能感受到了和谐和社会的脱轨说实话,罗子君整日都是梳妆打扮防小三,家里所有依旧保姆做的,包括男女。渐渐失去了自我,迷失自己。罗子群夫妇更是奇怪,整日吵吵闹闹,生活还得二嫂妹夫帮衬。剧中惨遭争议的凌玲,尽管只是职专学历,不过辛劳好学,上进,在合作社也还混的不利,“大婶”的外部和年龄,还拿到了陈俊生的依赖。在事业上,人物的差异是异常显然的。

     
在对待深入的对象上,贺涵和唐晶是毫不含糊的。从罗子君离婚后的逆转,一步步自家衍生和变化,都离不开贺涵和唐晶的协理。特别是贺涵,让他自然要从深远的目光,有对象。相反,在罗子君身边现身的阿金,一直都是自满自足,同时又安于现状自卑的老实人。别人一眼就能看穿六人的差别,事实上,不说物质上的门当户对,就连精神上的脚步也心中无数等同。就在罗子群出轨发廊的阿辉时,令人费解的是,她在阿辉和女婿白光间的纠结,该选取谁。

 

影射的社会现实

       
从唐晶身上,不难看出,只要忙绿好学,积极向上,女孩子在事业上仍然会有谈得来的一席之地。尽管后边贺涵的“背叛”,唐晶也仍旧有着和谐的自尊自强,还有自己的人生目标,没有何人会活不下的难堪局面。而不是像罗子君一最先要被离婚这样,去到公司撕心裂肺去闹场子。其实,从罗子君漂亮的逆转,也刚刚表明了,认真、努力的家庭妇女,最有魅力、有自信同时还收获别人的重视。

     
其实,我们身边不乏罗子群,甚至是大家和好都是罗子群这样的角色。十年,说长不长,说短不短。想想,昔日的同窗都什么了。有些你的同校都几百万了,你却还在挣扎要不要早起?相信广大人是过着安逸的朝九晚五的上班族生活,物价在上涨了,房价在飞涨了,你却还在一贯观察着,买不起房子,却又不敢离职,嘴里叨叨念着生活的经常。却又想着有朝一日出人头地,想着去学习一技之长,不过又有各个借口说忙,先忙着去玩王者农药,刷今日头条,关注游戏八卦,急着刷朋友圈。

     
日复日,月复月。一年又过去了,二〇一九年的希望清单竟然没有实现或者完成的。新的二〇一八年又来了,又起始了计划清单,永远完不成的期望清单,也不得不是期望。甚至是最简便的健身计划,最廉价的投入去跑步都不可能促成,何况是读书立陶宛语和阅读。有时候,恨铁不成钢时,就去挖一堆激励自己的心灵鸡汤,猛灌,看完了光阴管理、治疗拖延症,感觉自己早已去做到了一样,然后心情舒畅,继续去刷剧去了。

     
你周围的人居多都是如此过你又心安理得继续得过且过了。有天,有像贺涵、唐晶那样的老同学出现在您的先头,你简直不敢相信,当初都是联名读的大学,怎么三年五载的光景,就物是人非了啊?或许,在聚餐中,你听了他们的奋斗史,或许妒忌变成了眼红。

1,数据的持久化

      一贯不曾所谓的好运气,这些好运气的人都在苦逼又很嗨地追赶着他俩的靶子。

新近何猷君在《最强大脑》两获第一,圈粉无数。他不只是个颜值和智慧双在线的帅哥,而且仍然赌王的幼子,名副其实的高富帅,简直就是言情小说里面的男主角,不仅有钱有颜还有头脑。抛去他是赌王外甥的光环,他自己就是一个励志的富二代。

虽说何猷君系出豪门,何猷君却始终分外拼命,在上学上永远要争第一。据说,考上清华后,为了给家长一个惊喜,外人每个学期修4门课,他修8门,就因为想花3年时间修完4年的课程,早一年毕业。为此,他隔三差五在体育场馆做作业到凌晨三四点,甚至有过在教室待了5天没回宿舍的经验。何猷君的张罗账号上晒的都是她执教、泡教室的肖像,没日没夜地读书做题加班。毕业后何猷君更是不依附于家庭,独自到香港创业。加上她协调一共四个小伙伴跻身在一个5平米的办公室,和诸多创业者如出一辙她也省钱、挤地铁、经常加班加点、吃泡面。

   
试问,我们多少人能为了协调的地道,很苦逼又很嗨地去奋斗?大家再看看此外一个例证:

     
米国总统孙女伊万卡·特朗普(特朗普(Trump)),她是含着金钥匙出生的,不过她刻钟候并没有享受到金钥匙所应相配的财物和无忧,反而越来越由此担上了更沉淀的权责,过上了比一般女孩儿,更加独立的人生。因为Trump家教育孩子的习惯是,除了确保学费和着力生活费,其他的全套都要孩子自己去赚。

    当另外娃娃还在玩泥巴,溜滑滑梯的时候,伊万卡已经上马炒股赚钱。

    当他的爹娘在飞机里坐着头等舱的时候,伊万卡(伊万卡(Ivanka))被单独仍在经济舱里。

     
当其余人还在为试验而孤军奋战时,14岁的她一度先河凭借自己的身高、身材和长非常名模赚钱。16岁时已然登上了出名风尚杂志封面。而且成绩仍旧不错。18岁时候她和三伯成为同学,考上世界一级的清华大学沃顿商高校,而后又以抢眼战表毕业。伊万卡(Ivanka)在出版的自传《打特朗普(特朗普(Trump))牌》中写道:“无论是工作上,依然人生中,没有什么样事物是白送到您手上的。”

     
大学毕业后的他从未顿时进入家族公司,而是先去伦敦一家地产集团,从事基层工作。她说:“我不想一辈子只有在川普(Trump)公司工作的经历,而是想先看看其余公司的经验,通晓房地产业各样环节的做事。”2年过后,在基层锻练后的他进来特朗普(特朗普)家族集团,刚刚一进去,便表现其至高无上的纯天然和典型的德才,一举占领几个大门类。即使是家族公司,可她说话也不敢松懈,她是这么说的:“我必须对团结狠一点。倘若我干得不佳,也会被三叔解雇的。我梦想能用自己的大成得到同事的青睐。你们或许认为朝九晚五上班已经很麻烦了,我要比这卖力得多啊。”就是凭着这样的卖力和奋力,伊万卡于明早就到位了特朗普(特朗普)公司副老板的地方,在五个孩子中,她被特朗普指定为唯一继承人。

     
在许四个人在抱怨生活费劲时,看看伊万卡(Ivanka)的鼎力。她的命够好了,却还时如此执着追求和谐的人生目的。

     
看了何猷君、伊万卡(伊万卡(Ivanka))这么的富二代苦逼的打开形式,是不是又刷新了你对富二代的见解?以为有个靠谱的爹这一个都是纨绔子弟,玩喝玩乐而已吗?你可能看到的只是人家光鲜亮丽的一面,却未曾观看她们背后的鼎力。

首先,封装一下实体类的持久化过程,将实体类系列化后保存在磁盘文件,或者从一个磁盘文件加载实体类,间接上代码:

      从前在晋代就有“女生无才便是德”,现在又有“学得好,干得好,不如嫁得好”的传教,更有怎么样“你承担赚钱养家,我肩负貌美如花”。这样“恶毒的咒语”,使得更多的女孩,女子误入了“歧途”。

罗子君就是第顶级的负担“貌美如花”,是十年过去了,罗子君早已和社会脱轨了,和陈俊生不再是同一个社会风气的人了。五人本来是同一个起源的,一个人如故脚踏原地,而除此以外一个曾经突飞猛进时,五个人所接触的,看到的,都不相同了,换句话说就是三观已经今非昔比了,早已不是振奋上的门当户对了。同样时大学毕业,罗子君一向只是家中主妇,陈俊生已经是年薪一百多万的铺面高层了。罗子君的被离婚,使他有了新兴漂亮的逆转。


 

把握当下:当个逆袭罗子君

      
固然大家不少人不是含着金钥匙长大的高富帅或者白富美,不过,你可以因而友好的改变成为别人眼中的高富帅或者白富美。这一个捷径就是坚贞不屈不懈团结的靶子,并且入手去干。新的一年又翻页了,列好您的愿意清单。从最简易的先河,从最能便于形成的靶子先河,逐步地积淀,从量变到质变。

 1         /// <summary>
 2         /// 从数据文件载入实体数据(不会潜移默化内存数据),指出拔取Get的泛型方法
 3         /// </summary>
 4         /// <typeparam name=”T”></typeparam>
 5         /// <returns></returns>
 6         public T[] LoadEntity<T>() where T : EntityBase,new()
 7         {
 8             Type t = typeof(T);
 9             string fileName = this.FilePath + “\\” + t.FullName + “.pmdb”;
10             if (File.Exists(fileName))
11             {
12                 byte[] buffer = null;
13                 using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
14                 {
15                     long length = fs.Length;
16                     buffer = new byte[length];
17                     fs.Read(buffer, 0, (int)length);
18                     fs.Close();
19                 }
20                 T[] result= PdfNetSerialize<T>.BinaryDeserializeArray(buffer);
21 
22                 this.WriteLog(“加载数据 ” + fileName+” 成功!”);
23                 return result;
24             }
25             return null;
26         }
27 
28         /// <summary>
29         /// 直接保存实体数据,倘使文件已经存在则覆盖(不会潜移默化内存数据)
30         /// </summary>
31         /// <typeparam name=”T”></typeparam>
32         /// <param name=”entitys”></param>
33         /// <returns></returns>
34         public bool SaveEntity<T>(T[] entitys) where T : EntityBase, new()
35         {
36             if (entitys != null && entitys.Count() > 0)
37             {
38                 Type t = typeof(T);
39                 string fileName = this.FilePath + “\\” + t.FullName + “.pmdb”;
40                 byte[] buffer = PdfNetSerialize<T>.BinarySerialize(entitys);
41                 using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
42                 {
43                     fs.Write(buffer, 0, buffer.Length);
44                     fs.Flush();
45                     fs.Close();
46                 }
47                 this.WriteLog(“保存数据 “+fileName+” 成功!”);
48                 return true;
49             }
50             return false;
51         }

桥水基金的开创者雷伊.达里奥把团结的人生经历整理成两百多条标准分享出去,其中就有关于咋样达到目的。他说,要达到目的,只须五步:

 

1、选用一个清晰的目的。

这边,实体类的连串化都依靠于PDF.NET框架已有些

2、找到那个阻碍目的实现的题材。

 

3、精确地诊断问题。

PdfNetSerialize<T>.BinarySerialize(List<T> entitys); //二进制系列化
PdfNetSerialize<T>.BinaryDeserializeArray(byte[] buffer); //二进制反连串化

4、设计计划并列出任务清单。

 

5、坚决执行并成功计划里的职责清单。

      
在我们找出人生中最了不起的可怜目的,再分列子目的出来运用分段目的去落实的形式。再期间,碰到的小时管理问题,可以学学使用番茄工作的法子,有拖延症的题目,可以学学《神奇的手账》里面的办法。近来的网络新闻量如此发达,想要学号一技之长,并不难,只要您想去学。你只有成为了不可以代替,才走得更好更快,直达自己得目的。把握当下,成为相当逆转美观得罗子君。而不再是为着两三千得房租发愁的罗子群。

这六个办法,遵照具体的品类T
获取文件名,其它就从未怎么好说的。

 

2,构造“数据仓库”

既是是“数据库”,肯定要有一个地点来集中存放,这内存数据库自然是把持有数据放到内存中,于是定义一个“数据容器”对象:

 

List<EntityBase[]> dataContainer =new List<EntityBase[]>();

鉴于容器中要存放各种具体的实体类对象,所以我使用实体类的基类
EntityBase 来定义,数据容器
dataContainer中存放的是现实性实体类对象的数组,于是统一封存数据就是下边好像的代码:

 

1 private void SaveAllEntitys()
2 {
3     foreach(EntityBase[] item in dataContainer)
4     {
5         this.SaveEntity<EntityBase>(item);
6     }
7 }

 

老大不幸,我调用的 SaveEntity
方法不可能编译通过,VS给出的荒唐指示

“必须是有着公共的无参数构造函数的非抽象类型,才能作为泛型类型或艺术”SaveEntity>(T[] entitys)中的参数“T”,

于是乎改一下保留数据的章程,去掉new()泛型约束:

 

public bool SaveEntity<T>(T[] entitys) where T : EntityBase {…}

但连串化实体类的艺术无法编译通过:

byte[] buffer = PdfNetSerialize<T>.BinarySerialize(entitys);

BinarySerialize
方法也要求泛型类类型<T>不可以是抽象类或接口类型!

 

继而去修改系列化方法?不太可能,因为PDF.NET的类库已经很成熟了,难以评估此修改会对原来的门类暴发什么震慑。

 

本着“对修改关闭,对扩张开放”的尺度,唯有另辟蹊径,不走通常路了。

 

3,移花接木

咱俩再来看看 SaveAllEntitys
方法,假使大家可以在调用 SaveEntity
从前,拿到EntityBase类的切实可行落实项目,这该多好啊!那样就化解了泛型类不能利用抽象类类型的题目,但这里怎么可能拿拿到呢?即便我们在运转时,我们可以适合的来看
item 变量对应的目的的有血有肉品种,但我们的代码在那边却无奈给泛型方法的品种<T>一个松口,这可肿么办呢?

这么些问题不突破,前面的干活都没法举办,足足让自身寻思了一点个钟头。

“运行时才通晓具体类型…”

运行时运行时…”

黑马,灵光一现,何不在“运转时记下情势其实调用的现实品种”?也就是“捕获调用的艺术”,而不是获取“方法的执行结果”。举个简单例子:

 

Function 我要金山1()

‘找金山的切实可行经过

End Function

Function 我要金山2()

‘XXX想要金山!记录下来他怎么找到金山的

End Function

 

“我要金山2”跟“我要金山1”的区分就是,前者是要找金山的形式,而后者目标只是要金山!正所谓“授人与鱼不如授人与渔”!

在.NET中,咋样才能捕获“方法的调用”而不是拿到“方法的执行结果”?或者说,咋样才能先将艺术的调用记录下来,未来在某个时候再来执行?就像下面的例子“我要金山2”,别人看起来他近乎是要了一座金山,其实她骨子里的“野心大大的”,要享有更多的金山,这对客人而言他简直就是在“移花接木”!

闲话少说,如故请我们先天的骨干出场:

 

“隆重欢迎《委托》先生出场!”

 

探望我们的“《委托》先生”是怎么表演的:

 

 1         private List<Func<bool>> methodList;
 2 
 3          /// <summary>
 4         /// (延迟)保存数据,该方法会触发数据真正保存到磁盘,请添加、修改数据后调用该措施
 5         /// </summary>
 6         /// <typeparam name=”T”></typeparam>
 7         public void Save<T>() where T : EntityBase, new()
 8         {
 9             AddSaveMethod(() =>
10                 {
11                     Type t = typeof(T);
12                     string key = t.FullName;
13                     if (mem_data.ContainsKey(key))
14                     {
15                         T[] entitys = (T[])mem_data[key];
16                         //此处将触发key 对应的多少的保留动作
17                         lock (lock_obj)
18                         {
19                           return  SaveEntity<T>(entitys);
20                         }
21                     }
22                     return false;
23                 }
24             );
25             
26         }

 

 

 上边的代码定义了一个Func<bool> 
“委托方法”的列表对象methodList,以保留所有“需要调用的主意”,使得Save<T>()方法的实际操作不是去保存数据,而是保存了“保存数据的措施”,将该措施作为
AddSaveMethod 方法的参数,以高达“移花接木”的功力:

 

1         private void AddSaveMethod(Func<bool> toDo)
2         {
3             if(!methodList.Contains(toDo))
4                 methodList.Add(toDo);
5         }

 

终极,大家只需要在某个时候,开个后台线程,来实在举办这么些“数据保持的办法”即可,下边是保留数据到磁盘的代码:

 

 1         /// <summary>
 2         /// 将数据真正保障到磁盘
 3         /// </summary>
 4         protected internal void Flush()
 5         {
 6             foreach (var item in methodList.ToArray())
 7             {
 8                 item();
 9                 methodList.Remove(item);
10             }
11         }

 

 注意每一回我们实践保存数据的不二法门后,都要从methodList
清除它,等待下两回某个工作线程再度接触保存数据的动作。

 到此,大家保留各种类型的“实体数据”工作系数成功了,但怎么用好它,还得看“婆家”的气色。

 

 4,打造“数据集市”

前方的做事成功了怎么样加载数据,怎么样保存数据的问题,但那一个干活儿要办好,还得先找一个“容器”来囤积所有的数码,直接放到内存是最简便的想法,但我们不能让那么些内存数据库闲得没事也占据大量的内存,就像大家要开好自己的“个体服装店”,必须找个适合的“服装市场”,否则生意萧条门面冷清,所以大家亟须为我们的内存数据库找个“数据集市”。

什么样地点的内存可以按需采纳,闲置后得以回收?这不就是“缓存”吗?!

.NET 4.0提供了  System.Runtime.Caching
命名空间,下边有一对缓存管理的类,它们不依赖于System.Web.dll
程序集,可以在各个类型的应用程序中动用,就选它了:

 

 1     /// <summary>
 2     /// 内存数据库引擎,bluedoctor 2011.9.5 详细请看 http://www.pwmis.com/sqlmap
 3     /// </summary>
 4     public class MemDBEngin
 5     {
 6         /// <summary>
 7         /// 获取引擎实例,实例保存在系统缓存工厂中
 8         /// </summary>
 9         /// <param name=”source”>要持久化的目的数据保存的不二法门</param>
10         /// <returns></returns>
11         public static MemDB GetDB(string source)
12         {
13             MemDB result = CacheProviderFactory.GetCacheProvider().Get<MemDB>(source, () =>
14                  {
15                      MemDB db = new MemDB(source);
16                      db.AutoSaveData();
17                      return db;
18                  },
19                  new System.Runtime.Caching.CacheItemPolicy()
20                  {
21                      SlidingExpiration = new 提姆(Tim)eSpan(0, 10, 0), //距离上次调用10秒钟后过期
22                      RemovedCallback = args => {
23                          MemDB db=(MemDB)args.CacheItem.Value;
24                          db.Flush();
25                          db.Close();
26                      }
27                  }
28                  );
29 
30            return result;
31            
32         }
33 
34         private static string defaultDbSource=””;
35 
36         /// <summary>
37         /// 获取默认的内存数据库引擎
38         /// </summary>
39         /// <returns></returns>
40         public static MemDB GetDB()
41         {
42             if (defaultDbSource.Length == 0)
43             {
44                 string source = “~\\MemoryDB”;
45                 PWMIS.Core.CommonUtil.ReplaceWebRootPath(ref source);
46                 defaultDbSource = source;
47             }
48             return GetDB(defaultDbSource);
49         }
50     }

 

地方就是大家的“内存数据库引擎”的凡事代码,才50行代码,它曾经颇具按需开启数据库、闲置10分钟自动关闭数据库的效益,大家的内存数据库在缓存里面生活很舒坦啊!

 

5,实例使用“内存数据库”

下面的“理论介绍”已经上马完成了,你也许会有以下问题:

问:这一个数据库使用是否便民?

答:非常有利于,从数据库取出数据后,就像一般的点子一致操作对象,比如动用Linq
To Object,使用完了随时调用下保存方法即可;

问:是否很占用内存?

答:数据只是在缓存中,且有机关过期策略,随需随用,不额外占用内存。

问:大现身是否会有争论?

答:内存数据库就是给“大并发”访问意况的数量应用的,内存数据库采取一个独自后台线程来写入数据,不会有出现争论,当然,前台数据的采纳相应注意下。

问:援助什么格式的多寡?

答:只如若PDF.NET的实体类即可,可以将数据从DBMS查询到实体类中,然后保留到内存数据库。

问:是否援助分布式缓存?

答:内存数据库选择.net
4.0的缓存接口,理论上协理各种缓存实现技术,比如内存、文件或者分布式的MemoryCache。

问:与NoSql有怎样界别?

答:内存数据库使用的法门跟普通程序对象没有区别,可以动用Linq
To
Sql或者直接操作操作数据,而NoSql要拔取“键-值”对存储数据,程序中要使用特其余格式存取数据,有早晚学习成本。

 

上面,我们以一个实例,来看哪样运用内存数据库:

 

        /// <summary>
        /// 保存问题的答复结果
        /// </summary>
        /// <param name=”uid”>用户标识</param>
        /// <param name=”answerValue”>每道题的得分</param>
        public void SaveAnswerResult(string uid, int[] answerValue)
        {
            MemDB db = MemDBEngin.GetDB();// 获取内存数据库实例
            QuestionResult[] resultList= db.Get<QuestionResult>(); // 取数据

            QuestionResult oldResult = resultList.Where(p => p.UID == uid).FirstOrDefault();
            if (oldResult != null)
            {
                oldResult.AnswerValue = answerValue;
                oldResult.AnswerDate = DateTime.Now;
               
            }
            else
            {
                QuestionResult qr = new QuestionResult();
                qr.UID = uid;
                qr.AnswerValue = answerValue;
                qr.AnswerDate = DateTime.Now;
              
                db.Add(qr);
            }
            db.Save<QuestionResult>();// 保存数据
        }

        /// <summary>
        /// 载入某用户的答案数据
        /// </summary>
        /// <param name=”uid”></param>
        /// <returns></returns>
        public int[] LoadAnswerResult(string uid)
        {
            MemDB db = MemDBEngin.GetDB();
            QuestionResult[] resultList = db.Get<QuestionResult>();

            QuestionResult oldResult = resultList.Where(p => p.UID == uid).FirstOrDefault();
            if (oldResult != null)
                return oldResult.AnswerValue;
            else
                return null;
        }

上边的实例中,MemDBEngin是内存数据库引擎,QuestionResult 是PDF.NET的实体类。

什么样?是不是很简单?我发觉只要跟DBMS没关的数量处理,都是很粗略!估算你现在也能够搞出一个内存数据库了。

 

后记

“内存数据库”将在PDF.NET框架的下一个版本中规范合并,最近一度在360本钱卫士项目中利用,下边是一对日志:

 

9/9/2011 AM 12:01:45 起头化数据库成功,基础目录: \MemoryDB
9/9/2011 AM 12:01:45 后台数码监视线程已打开!
9/9/2011 AM 12:01:45 加载数据  QuestionResult.pmdb 成功!
9/9/2011 AM 12:05:00 保存数据  QuestionResult.pmdb 成功!
9/9/2011 AM 12:15:00 数据库已关门!
9/9/2011 AM 10:19:19 起首化数据库成功,基础目录: \MemoryDB
9/9/2011 AM 10:19:19 后台数据监视线程已开启!
9/9/2011 AM 10:19:19 加载数据  QuestionResult.pmdb 成功!
9/9/2011 AM 10:22:07 保存数据  QuestionResult.pmdb 成功!
9/9/2011 AM 10:32:20 数据库已关闭!

 

 有关内存数据库的任何问题,请过来本文,如需要内存数据库源码,请和自己联系,联系形式,请看PDF.NET框架
官网地址 http://www.pwmis.com/sqlmap

“内存数据库”需要PDF.NET框架的协理,当然你也足以扩大扶助任何ORM框架,源码规模很小,欢迎我们一道探究学习!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 mobile.365-838.com 版权所有