我从事的项目正在扩展 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可能与推荐类兼容的问题吗?
我正在编写一个应用程序,它解析一个大文件,生成大量数据并用它做一些复杂的可视化.由于所有这些数据都无法保存在内存中,我做了一些研究,我开始将嵌入式数据库视为此数据的临时容器.
我的问题是:这是解决这个问题的传统方式吗?应该通过在内存中仅保留一个子集(如缓存)来管理数据的嵌入式数据库(除结构化数据之外),而其余数据库保留在磁盘上?谢谢.
编辑:澄清:我正在编写一个桌面应用程序.应用程序将输入大小为100s Mb的文件.在读取文件后,应用程序将生成大量可视化的图形.由于图形可能具有如此大量的节点,因此它们可能不适合存储器.我应该将它们保存到嵌入式数据库中,该数据库将仅保留内存中的相关数据吗?(嵌入式数据库会这样做吗?),或者我应该编写自己的复杂模块来做到这一点?
我正在寻找带有Java API的嵌入式数据库用于测试目的.我还需要pl/sql支持,因为我们在生产中使用oracle,迁移是用pl/sql编写的.
我想测试我的DAO对象,我需要在使用迁移脚本进行单元测试的过程中在内存中创建db.
现在我们使用HSQLDB,但它不支持pl/sql.
你能推荐一下吗?
我正在开发一个开源产品,需要嵌入式dbms.你能推荐一个嵌入式开源数据库......
我查看了一些文档DBMS,比如mongodb,但它们似乎仅限于4或16 MB的文档.
伯克利数据库看起来很有吸引力但有许可证的GPL.
Sqlite3很有吸引力:很好的许可证,您可以使用您喜欢的任何最大blob大小进行编译.但是,它不是Java.我知道JDBC驱动程序存在,但我们需要一个纯Java系统.
有什么建议?
谢谢
史蒂夫
我在tutorials-java-embedded-index上浏览neo4j docs .它描述了参考节点的概念.创建用户参考节点usersReferenceNode,用于连接在DB中创建的所有用户节点.
这个参考节点的用途是什么?当我尝试使用时graphDb.getReferenceNode(),它显示为已弃用的方法.
那么是否需要创建参考节点?如果是,那么使用这样的参考节点是什么以及如何使用?
谢谢.
使用HikariCP等嵌入式数据库(如SQLite,H2或HSQLDB)有什么好处吗?(最后两个也可以在服务器模式下运行,但我对此不感兴趣)
除了性能优势(我认为嵌入式数据库可以忽略不计)之外,我还对连接池提供的其他工具感兴趣,这些工具可以使代码更简洁和/或更健壮.
我认为这个问题与另一个问题的不同之处在于它更具体,因为它侧重于嵌入式数据库,并且在较小程度上侧重于HikariCP.
我想使用嵌入式 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 文件?
问题:我目前将ASP.net应用程序数据存储在XML文件中.
现在的问题是我有异步操作,这意味着我遇到了对XML文件进行同时写访问的问题......
现在,我正在考虑转向嵌入式数据库来解决这个问题.我正在考虑使用SQlite和嵌入式Firebird.
但是我不确定SQlite或Firebird是否可以处理多个并发写访问.
我当然不希望再次遇到同样的问题.
有人知道吗?
SQlite当然更为人所知,但哪一个更好 - SQlite还是Firebird?我倾向于说Firebird,但我真的不知道.
请不要MS-Access或MS-SQL-express建议,我是一个理智的人.
我想创建一个内存数据库,其中填充了测试数据以进行快速测试,因此我在配置文件中声明了这个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) 我想知道我的理解是否正确:
embedded:数据库,如果我的应用程序启动,则会启动;如果应用程序关闭,则会关闭. 我不是指嵌入式空间中使用的数据库.
内存:数据库可以在任何服务器上; 无论我的应用程序在哪里运行.就是这样,这些使用主存.