PDF.NET内存数据库的使用小结

2019-03-02 00:44|来源: 网路

  深蓝医生的PDF.NET数据开发框架提供了一个建议的内存数据库功能,具体的功能介绍我就不多说了,可以看医生的博文《移花接木:当泛型方法遇上抽象类----我的“内存数据库”诞生记》

  我之所以会用到这个内存数据库,主要是最近在做一个微信公众平台相关的项目,在完成一个微信操作的时候,可能要等待多次用户的输入,这过程中就需要把数据存在内存中,但是我用到的数据结构相对有比较复杂,自己设计方案比较麻烦,如果能用现有的代码就好了,突然想到了医生提过的内存数据库,于是找出来看了一下,然后自己试着用了一下,发现很适合我的需求,医生提供的这个内存数据库就是专门为PDF.NET设计的,使用十分方便,除了能在内存中方便的使用PDF.NET的内存数据库以外,但遇到某些数据无法上传的情况,还可以暂时把数据保存到本地,等可以上传数据的时候再把保存到本地的数据重新载入内存。

  我在项目中用到的一个场景是这样的,用户点击微信服务号的一个按钮,我为这个用户创建一个对象放到内存数据库,用户选择不同的功能,我会在属于这个用户的对象中存入相应的数据,PDF.NET的内存数据库提供了很好用的查询功能,我以用户微信的openid作为对象的id,不管用户调用多少功能,输入多久,服务端的内存数据库都只有一个唯一的对象与该用户对应,帮助用户完成各种操作,等用户操作完成或者超时的时候,我会删除内存数据库中的这个对应的对象,这样也会节省很多内存。因为我大部分时候都不需要把数据保存本地,所以使用内存数据库效率还是很高的。如果需要把数据存到本地的时候,PDF.NET的内存数据库也提供了这样的保存到本地的功能,使用很方便。再就是这个内存数据库是基于PDF.NET的,如果你的系统本身就是基于PDF.NET的话,会大大的减少你的工作量。

  好啦,具体的使用还是看看医生的博客吧,结束!


转自:http://www.cnblogs.com/znlgis/p/3736441

相关问答

更多
  • 写入PDF? 可以,不过需要下载操作 PDF 的JAR包!操作起来不是太麻烦,不过就是生成的时间比较长。。。 flex 是 flash的一种延伸,flash 对于网站加载来说本来就比较慢,比较的消耗资源,生成PDF 可想而知! 其次 flex 发布到jobss tomcat 等服务器中时,你的 flex 是编译成flash,还是直接将xml放入容器中让其自动生成flash呢? 如果是的话,那反应就更慢了。。。 再后者,flex 虽然说是 flash 只要客户端支持flash就能看见 你的网站,但flex 需 ...
  • 也可以啊,理论上hashmap比redis访问更快,但是你需要解决持久化的问题,要不重启进程和断电这样的情况,怎么保证数据不丢。
  • 1·绑定数据源来进行连接 2.用代码连接 先到数据库建立一个数据库和相应的表 连接数据库的代码: Dim str As String = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password=" dim conn As SqlClient.SqlConnection try conn = New SqlClient.SqlConnection conn.ConnectionString ...
  • VB.net数据库连接[2022-04-29]

    模块代码: Module Module1 Public Conn As ADODB.Connection Public Cmd As ADODB.Command Sub OpenDatabase() '打开数据库 Dim ConnectionString As String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\test\test.mdb" '连接字符串 Conn = New ADODB.Connection( ...
  • 答案就在那里,在你的代码中: // Close and output PDF document // **This method has several options**, check the source code documentation for more information. $pdf->Output('example_001.pdf', 'I'); 从文档 : 参数:(...)字符串$ dest发送文档的目的地。 它可以取下列值之一:(...)S:以字符串形式返回文档。 名称被忽略。 因此 ...
  • 对于这一切有不同的意见,所以我认为你将很难得到明确的答案。 也就是说,我个人的看法是内存数据库可以很好地用于单元测试。 有些人认为,当你在EF中使用内存数据库时,这是技术上的集成测试,因为你实际上涉及到所有的EF机器。 然而,我有两个观点反对这一理论:1)它是内存中的,因此实际上不是一个现实的集成测试(因为你显然不会在生产中使用内存数据库),2)两者之间几乎没有区别并创建一个复杂的模拟,从一些内存收集中返回数据。 因此,我认为使用EF中的内存数据库提供程序进行单元测试就好了。 这只是为了节省你不得不支持一个 ...
  • 如果您可以将它们全部放在本地计算机上的同一目录中,则可以使用: string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 获取所有文档的列表,然后使用for循环来获取每个文件并将其转换为字节流并将其添加到数据库中。 你甚至不需要winforms应用程序。 一个简单的控制台应用程序可以解决问题 If you can get them all in the same directory on your local machine you can use: s ...
  • 这是一个不同的配置类 - InMemoryConfiguration 。 像这样使用它: var config = new InMemoryConfiguration("my-identifier"); var realm = Realm.GetInstance(config); 这已经实施但尚未发布。 今天使用它,从myget获得最新的每晚构建 。 It's a different configuration class - InMemoryConfiguration. Use it like: var ...
  • 投影发生在数据库服务器端; 它通常用于限制MongoDB发送给应用程序的数据量 。 显示MongoDB如何利用投影优化其自身运行的一个特定示例是当从查询返回的所有字段都包含在用于查找数据的索引中时; 这被称为覆盖查询 ,这意味着一旦MongoDB找到了索引条目,它就可以立即完成,而无需进一步查看实际的集合数据。 Projection happens on the database server side; it is typically used to limit the amount of data th ...