我正在使用 Java 和 Spring Boot 构建一个应用程序,每次运行时我想查询两个外部数据库(它们可能有不同的架构和数据)。因此我想每次查询两个不同的数据库。访问这些数据库后,我想将结果(我的业务逻辑)存储在本地静态数据库上。
我最初想将所有数据库数据(用户、通行证、url)存储在 application.properties 中,但后来意识到这可能不是最佳实践,因为我正在查询的两个数据库的详细信息将被接收为来自用户的输入。因此,我不确定每次收到新请求时更新并覆盖 application.properties 是否是最好的主意(请告诉我是否有更好的方法来执行此操作。
假设我在 application.properties 中有数据库信息,我已经遵循了 Spring 中多个数据库连接的多个教程,并且它们都遵循了为每个数据库创建配置文件、调用存储库/DAO 文件的内容每个数据库,它引用所述数据库的模型。这对我来说似乎有点问题,因为我事先不知道数据库的架构,所以我无法定义模型类。即使我这样做了,这也可能会随着数据库的不同而改变,所以我真的不知道该怎么做。 鉴于我不知道它们的模式可能是什么样子,是否有更灵活/通用的方法来使用 Spring 或老式 Java 查询“外国”数据库?
非常感谢任何帮助!
最佳答案
作为最佳实践,必须在 application.properties
或配置类中维护多个数据库配置。请参阅此处 - https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources
您可以拥有一个具有数据库属性的 POJO,该属性是根据用户提供的值分配的。在数据库配置类中使用该 POJO 连接到不同的数据库。
不知道架构不是问题,因为您可以使用 java 集合处理数据。
关于java - 在 Spring Boot 中连接多个 "Dynamic"数据库以及本地 "Static"数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60312331/