标签: embedded-database

将已弃用的 SimpleMongoDbFactory 修复为 SimpleMongoClientDbFactory 破坏嵌入式 Mongo 测试

我从事的项目正在扩展 SimpleMongoFactory 以实现多租户

public class MultiTenantMongoFactory extends SimpleMongoDbFactory {
Run Code Online (Sandbox Code Playgroud)

从 Spring boot 2.1.10迁移到2.2.1后,我们尝试使用推荐的类来修复弃用警告

SimpleMongoClientDbFactory

编译和应用程序运行良好,但集成测试被破坏。

我的分析是自动配置类EmbeddedMongoAutoConfiguration代码:

@ConditionalOnClass({ MongoClient.class, MongoClientFactoryBean.class })
static class EmbeddedMongoClientDependsOnBeanFactoryPostProcessor
        extends MongoClientDependsOnBeanFactoryPostProcessor {

    EmbeddedMongoClientDependsOnBeanFactoryPostProcessor() {
        super(MongodExecutable.class);
    }

}
Run Code Online (Sandbox Code Playgroud)

这将调用:

super(MongoClient.class, MongoClientFactoryBean.class, dependsOn);
Run Code Online (Sandbox Code Playgroud)

仅适用于已弃用的com.mongodb.MongoClient,不推荐使用com.mongodb.client.MongoClient

这不是EmbeddedMongoAutoConfiguration可能与推荐类兼容的问题吗?

java embedded-database mongodb spring-boot

5
推荐指数
1
解决办法
9124
查看次数

何时使用嵌入式数据库

我正在编写一个应用程序,它解析一个大文件,生成大量数据并用它做一些复杂的可视化.由于所有这些数据都无法保存在内存中,我做了一些研究,我开始将嵌入式数据库视为此数据的临时容器.

我的问题是:这是解决这个问题的传统方式吗?应该通过在内存中仅保留一个子集(如缓存)来管理数据的嵌入式数据库(除结构化数据之外),而其余数据库保留在磁盘上?谢谢.

编辑:澄清:我正在编写一个桌面应用程序.应用程序将输入大小为100s Mb的文件.在读取文件后,应用程序将生成大量可视化的图形.由于图形可能具有如此大量的节点,因此它们可能不适合存储器.我应该将它们保存到嵌入式数据库中,该数据库将仅保留内存中的相关数据吗?(嵌入式数据库会这样做吗?),或者我应该编写自己的复杂模块来做到这一点?

database embedded-database

4
推荐指数
1
解决办法
3180
查看次数

嵌入式数据库是否支持PL/SQL和Java API?

我正在寻找带有Java API的嵌入式数据库用于测试目的.我还需要pl/sql支持,因为我们在生产中使用oracle,迁移是用pl/sql编写的.

我想测试我的DAO对象,我需要在使用迁移脚本进行单元测试的过程中在内存中创建db.

现在我们使用HSQLDB,但它不支持pl/sql.

你能推荐一下吗?

java plsql embedded-database

4
推荐指数
1
解决办法
2729
查看次数

嵌入式nosql开源java数据库

我正在开发一个开源产品,需要嵌入式dbms.你能推荐一个嵌入式开源数据库......

  • 可以处理每个超过10 GB的对象
  • 拥有嵌入式许可证(LGPL,而不是GPL).
  • 是纯Java
  • 是(最好)nosql.Sql可能会工作,但更喜欢nosql

我查看了一些文档DBMS,比如mongodb,但它们似乎仅限于4或16 MB的文档.

伯克利数据库看起来很有吸引力但有许可证的GPL.

Sqlite3很有吸引力:很好的许可证,您可以使用您喜欢的任何最大blob大小进行编译.但是,它不是Java.我知道JDBC驱动程序存在,但我们需要一个纯Java系统.

有什么建议?

谢谢

史蒂夫

rdbms embedded-database javadb object-oriented-database

4
推荐指数
1
解决办法
3635
查看次数

是否仍在使用或弃用neo4j中的参考节点的概念?

我在tutorials-java-embedded-index上浏览neo4j docs .它描述了参考节点的概念.创建用户参考节点usersReferenceNode,用于连接在DB中创建的所有用户节点.

这个参考节点的用途是什么?当我尝试使用时graphDb.getReferenceNode(),它显示为已弃用的方法.

那么是否需要创建参考节点?如果是,那么使用这样的参考节点是什么以及如何使用?

谢谢.

java deprecated embedded-database neo4j

4
推荐指数
1
解决办法
1400
查看次数

将JDBC连接池与嵌入式数据库一起使用是否有好处?

使用HikariCP等嵌入式数据库(如SQLite,H2或HSQLDB)有什么好处吗?(最后两个也可以在服务器模式下运行,但我对此不感兴趣)

除了性能优势(我认为嵌入式数据库可以忽略不计)之外,我还对连接池提供的其他工具感兴趣,这些工具可以使代码更简洁和/或更健壮.

我认为这个问题与另一个问题的不同之处在于它更具体,因为它侧重于嵌入式数据库,并且在较小程度上侧重于HikariCP.

java connection-pooling jdbc embedded-database hikaricp

4
推荐指数
1
解决办法
641
查看次数

嵌入式 MongoDB 尝试下载 Zip

我想使用嵌入式 MongoDB 和 Spring Boot 进行测试。

这是我要导入的依赖项:

testCompile('de.flapdoodle.embed:de.flapdoodle.embed.mongo')
Run Code Online (Sandbox Code Playgroud)

每当我启动时,都会SpringBootTest初始化EmbeddedMongoAutoConfigurationbean MongodExecutable,并且该 bean 开始从 url 下载 zip 文件(版本 3.2.2)。如何配置它才能使用我src/test/resources目录中的 zip 文件?

embedded-database mongodb spring-boot

4
推荐指数
1
解决办法
5722
查看次数

SQlite/Firebird:它们中的任何一个都支持多个并发写访问吗?

问题:我目前将ASP.net应用程序数据存储在XML文件中.

现在的问题是我有异步操作,这意味着我遇到了对XML文件进行同时写访问的问题......

现在,我正在考虑转向嵌入式数据库来解决这个问题.我正在考虑使用SQlite和嵌入式Firebird.

但是我不确定SQlite或Firebird是否可以处理多个并发写访问.
我当然不希望再次遇到同样的问题.
有人知道吗?
SQlite当然更为人所知,但哪一个更好 - SQlite还是Firebird?我倾向于说Firebird,但我真的不知道.

请不要MS-Access或MS-SQL-express建议,我是一个理智的人.

c# asp.net sqlite firebird embedded-database

3
推荐指数
2
解决办法
4768
查看次数

Spring H2嵌入式数据库

我想创建一个内存数据库,其中填充了测试数据以进行快速测试,因此我在配置文件中声明了这个bean,但我也想设置这个属性:

MODE=MySQL
DB_CLOSE_ON_EXIT=FALSE
Run Code Online (Sandbox Code Playgroud)

但我不知道该怎么做

@Bean
public DataSource dataSource(){
    return
        (new EmbeddedDatabaseBuilder())
        .setType(EmbeddedDatabaseType.H2) //.H2 
        .addScript("classpath:db/H2.schema.sql")
        .addScript("classpath:db/H2.data.sql")
        .build();
}
Run Code Online (Sandbox Code Playgroud)

java spring h2 embedded-database spring-boot

3
推荐指数
1
解决办法
4489
查看次数

内存和嵌入数据库之间的区别

我想知道我的理解是否正确:

embedded:数据库,如果我的应用程序启动,则会启动;如果应用程序关闭,则会关闭. 我不是指嵌入式空间中使用的数据库.

内存:数据库可以在任何服务器上; 无论我的应用程序在哪里运行.就是这样,这些使用主存.

database embedded-database in-memory-database

3
推荐指数
1
解决办法
1398
查看次数