标签: embedded-database

.NET中的快速嵌入式数据库有哪些选择?

我正在制作这个小型实用程序(Windows Forms),它需要将一些数据保存到磁盘上.在DB术语中,它将是一个表,不超过大约几千行,每行大小小于1KB.

你会用什么?

补充:忘了说 - 如果整个程序只是一个.EXE文件(当然还有数据文件),它会非常整洁.因此,我更喜欢用.NET构建的东西.

.net embedded-database

9
推荐指数
3
解决办法
1031
查看次数

测试在内部使用特定于MySQL的查询的代码的适当方法是什么

我正在收集数据并使用Java将这些数据存储在MySQL数据库中.另外,我使用Maven构建项目,TestNG作为测试框架,使用Spring-Jdbc访问数据库.我已经实现了一个封装对数据库的访问的DAO层.除了使用DAO类添加数据之外,我还想执行一些查询,这些查询聚合数据并将结果存储在其他一些表中(如物化视图).

现在,我想编写一些测试用例来检查DAO类是否正常工作.因此,我想到了一个内存数据库,它将填充一些测试数据.由于我也使用MySQL特定的SQL查询来聚合数据,我遇到了一些麻烦:

  1. 首先,我想过简单地使用Spring-Jdbc提供的嵌入式数据库功能来实例化嵌入式数据库.我决定使用H2实现.在那里我遇到了麻烦,因为聚合查询使用特定于MySQL的内容(例如时间操作函数,如DATE()).这种方法的另一个缺点是我需要维护两个ddl文件 - 在MySQL中定义表的实际ddl文件(这里我定义了编码并为表和列添加注释,这两个特性都是特定于MySQL的); 和测试ddl文件定义相同的表但没有注释等,因为H2不支持注释.
  2. 我找到了使用MySQL作为嵌入式数据库的描述,我可以在测试用例中使用它(http://literatitech.blogspot.de/2011/04/embedded-mysql-server-for-junit-testing.html) .这对我来说真的很有希望.不幸的是,它没有用:一个MissingResourceExcpetion发生了"资源'5-0-21/Linux-amd64/mysqld'找不到".似乎驱动程序无法在我的本地计算机上找到数据库守护程序.但我不知道我需要寻找什么才能找到解决该问题的方法.

现在,我有点陷入困境,我想知道我是否应该以不同的方式创建架构.有人提供了一些如何设置合适系统的提示吗?我还有两个其他选择:

  1. 我将使用本机MySQL实例并设置仅用于测试用例的数据库,而不是使用嵌入式数据库.这个选项听起来很慢.实际上,我可能想稍后设置一个CI服务器,我认为使用嵌入式数据库会更合适,因为测试运行得更快.
  2. 我从SQL查询中删除了所有特定于MySQL的东西,并使用H2作为嵌入式数据库进行测试.如果这个选项是正确的选择,我需要找到另一种方法来测试将数据聚合到物化视图的SQL查询.
  3. 还是有第三种选择,我没有想到的?

我会很感激任何提示.

谢谢,XComp

mysql testng spring-jdbc embedded-database maven

9
推荐指数
2
解决办法
3206
查看次数

快速嵌入数据库

我正在开发一个应用程序,它需要存储与音乐文件(艺术家,标题,播放计数等)相关的元数据,以及整数集(特别是SHA-1哈希).

我选择的解决方案需要:

  • 提供"快速"存储和检索(当查看可能数千首歌曲的列表时,我需要能够或多或少地以交互方式检索元数据).
  • 跨平台(Linux,Windows和OSX).
  • 提供我可以从C++交互的界面.
  • 是开源的(或者至少是啤酒中的自由).
  • 提供快速设置操作(并集,交集,差异) - 如果解决方案不提供此功能,但它允许我存储二进制数据,我可以使用"快速设置操作使用Treaps"等技术自行实现.
  • 被"嵌入" - 也就是说,在没有我必须进行fork另一个过程的情况下运行,或者至少提供一个简单的界面(如libmysqld).

我考虑的解决方案包括:

  • 平面文件.这非常简单,但除了平面数据存储之外不提供任何功能.
  • SQlite的.这似乎是一个非常受欢迎的选项,但它似乎在性能和并发性方面存在一些问题(有关示例问题,请参阅KDE的Akonadi).
  • 嵌入式MySQL/MariaDB.这似乎是一个合理的选择,但考虑到我不需要很多复杂的SQL功能,它也可能有点重量级.

我认为完美的假设解决方案就像Redis,但它将数据保存到磁盘,并且只将一部分数据存储在内存中以便快速检索.Redis本身可能不是一个好选择因为1)我需要fork手动操作,2)它的Windows端口看起来不那么坚固,3)将所有数据存储在RAM中将不太理想.

对于这类问题是否有其他解决方案,或者我已经列出的解决方案之一远远优于其他解决方案?

c++ database embedded-database data-structures

9
推荐指数
1
解决办法
6395
查看次数

Qt的嵌入式数据库好吗?

我正在寻找可用于使用Qt开发的应用程序的良好嵌入式数据库.这些应用程序面向来自单个大型公司的各个站点的桌面用户.数据库应该能够在每个站点单独存储数据,并且数据应在需要时与其他站点合并.

sql database sqlite qt embedded-database

8
推荐指数
1
解决办法
3797
查看次数

是否可以将MongoDB用作嵌入式数据库?

正如标题所说,我喜欢将MongoDB服务器嵌入到我自己的C++应用程序中.我没有在文档中找到此模式.我在寻找的是嵌入式模式下的SQLite或Firebird.这对MongoDB也有可能吗?(不自己编程).

c++ embedded-database mongodb

8
推荐指数
2
解决办法
3485
查看次数

在嵌入式HSQL数据库中创建模式的最佳方法

我目前正在使用以下设置在嵌入式数据库中创建架构,然后再针对它运行测试

在我的应用程序上下文

<jdbc:embedded-database id="dataSource" type="HSQL">
    <jdbc:script location="classpath:createSchema.sql" />
</jdbc:embedded-database>
Run Code Online (Sandbox Code Playgroud)

createSchema.sql

create schema ST_TEST AUTHORIZATION DBA;
Run Code Online (Sandbox Code Playgroud)

休眠属性

<properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
    <property name="hibernate.default_schema" value="ST_TEST"/>
    <property name="hibernate.hbm2ddl.auto" value="create-drop" />
    <property name="hibernate.show_sql" value="true" />
    <property name="hibernate.use_sql_comments" value="true" />
    <property name="hibernate.cache.use_second_level_cache" value="false" />
</properties>
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是最好的方法.或者我可以在我的属性中使用不同的模式名称?或者在jdbc:embedded-database元素中设置模式名称

java spring hibernate hsqldb embedded-database

8
推荐指数
1
解决办法
2万
查看次数

Node.js的嵌入式文档数据库

Node.js 最好的嵌入式 NoSQL数据库是什么?

我的node.js应用程序太小,无法使用像mongodb这样需要额外配置的大型数据库.

我试过EJDB,但它需要太多磁盘空间(每条记录大约1.5MB).

我也搜索网络,但谷歌给了我很多选择,这让我很困惑.

以下是一些要求:

  • 快速轻巧
  • 不需要太多的配置
  • 能够存储大量数据(大约十万条记录,总大小为1GB)
  • 更好的Node.js包

database embedded-database nosql node.js

8
推荐指数
1
解决办法
1万
查看次数

使用HSQL进行.NET开发和相关的过程问题

我的团队使用Oracle的共享实例进行开发,使用C#,NHibernate和ASP.NET,在进行数据或模式更改时,我们偶尔会踩到彼此的脚趾.

在另一个项目中,我在100%内存模式下使用Java和HSQL,只是让Hibernate启动一个脚本来导入足够的数据进行测试.它还会创建和删除架构.我考虑在.NET-land中使用相同的方法.由于所有内容都是临时的和独立的,因此我们仍然无法在彼此的脚趾上行走,我们仍然可以将我们的架构和数据集成到共享的Oracle盒子上.

我在.NET上寻找HSQL,而SharpHSQL似乎是一个死的项目(2005年最后一个版本).

是否存在一个等效于HSQL for .NET的活动项目,或者是否足够接近以这种方式使用?

你是如何在团队环境中使用这种方法的?有什么问题?

如何管理和版本控制数据以填充数据库?是否有用于导入数据的跨平台解决方案?

c# test-data process hsqldb embedded-database

7
推荐指数
1
解决办法
5295
查看次数

使用嵌入式sqlite部署winform应用程序

我正在部署使用vs 2008 0n XP sp3构建的winform应用程序.

我创建了一个空模式的数据库,我将其放在项目的根文件夹和我选择的属性中Build Action:嵌入式资源Copy to Output directory:始终复制.现在,我没有在app.config connectionString部分中使用connectionstring,而是将条目放在appSetting:key="database"; value= "mydb.db;版本= 3".

所以要创建我connectionString使用的:

 SQLiteConnection con = new SQLiteConnection("Data Source=" + Path.Combine(Application.StartupPath, ConfigurationManager.AppSettings["database"]));
Run Code Online (Sandbox Code Playgroud)

一切正常,我用一个安装项目打包应用程序.现在我安装了应用程序之后无法找到数据库,我不得不将数据库复制到Application Folder安装项目中以使其工作.

我认为db应该是在应用程序DLL中因为.copy always但我无法访问它.所以我究竟做错了什么?

我怀疑我应该只是连接到根db意味着不使用 Application.StartupPath

但我在这里要求最好的做法因为我所做的工作但仍然看起来像是解决方法所以请有人可以与我分享他的经验吗?谢谢阅读

sqlite deployment embedded-database visual-studio-2008 winforms

7
推荐指数
1
解决办法
3994
查看次数

适用于.Net的良好嵌入式数据库解决方案(如SQLite)

我正在寻找可以与.Net项目一起使用的基于文件的存储解决方案.它需要一个类似sql的接口来存储和检索数据.它们需要相对较少的开销,并且不需要最终用户安装任何其他组件.我正在跳一个我可以参考和使用的.dll.如果与ORM密切相关,则奖励积分.

我目前最喜欢的是SQLite,那里有哪些更好的我应该知道的?

我有一种(健康?)对访问的偏见,因为我觉得它对于我需要的东西而言过于复杂,但我仍然愿意相信.

PS:"不,没有什么比SQLite更好"是一个非常好的答案.

sql database sqlite embedded-database

7
推荐指数
1
解决办法
3225
查看次数