在Java中动态连接到数据库(Spring Boot)

在Java中动态连接到数据库(Spring Boot),java,spring,hibernate,spring-boot,spring-data-jpa,Java,Spring,Hibernate,Spring Boot,Spring Data Jpa,我想在每个http请求中连接到数据库(在每个请求中,我都会从用户那里获得数据库详细信息)。有人能建议如何使用spring boot starter jpa进行连接吗 我无法使用属性文件获取数据库配置详细信息。 因为我将从http请求动态获取详细信息 我使用的是2.0.0.M3 spring boot版本。我认为立即连接用户的数据库可能不合适。我建议制作一个接口程序,在一个数据库中收集所需的动态数据。您不能在代码中更改连接参数的属性。您需要在类中加载spring boot的属性文件使用@Confi

我想在每个http请求中连接到数据库(在每个请求中,我都会从用户那里获得数据库详细信息)。有人能建议如何使用spring boot starter jpa进行连接吗

我无法使用属性文件获取数据库配置详细信息。 因为我将从http请求动态获取详细信息


我使用的是2.0.0.M3 spring boot版本。

我认为立即连接用户的数据库可能不合适。我建议制作一个接口程序,在一个数据库中收集所需的动态数据。您不能在代码中更改连接参数的属性。

您需要在类中加载spring boot的属性文件使用
@ConfigurationProperties
anotion


您还需要在此类中调用数据库配置api。

我建议您最好使用本机JDBC代码连接数据库并执行查询。如果您想使用spring数据jpa,那么您必须在运行时为
DataSource
EntityManagerFactory
JpaTransactionManager
创建bean

如果每个用户请求中都会出现数据库详细信息,并且您希望在每个http请求中连接数据库,那么这就不可取了,因为在没有数据库实例化的情况下,应用程序启动时甚至不会有entity manager工厂。但是在这种情况下,您必须手动管理所有这些内容。您必须在每个请求上手动创建数据源、事务管理器、实体管理器等实例化和初始化,并向spring IOC容器注册这些实例,在请求完成后,您必须手动从spring IOC中删除(注销)这些实例。你可以为此创建拦截器。但任何人都不应该手动完成这个过程,因为它是如此的复杂,而且我们正在使这个实例化的负担由我们自己来销毁bean。
甚至spring也能很好地管理它,我们通过自己负责来增加复杂性。

同样的要求,我相信我连接到的所有数据库都具有相同的结构


到目前为止有什么解决方案吗?

我不明白你的意思??项目要求是使用ORM。我不能使用原生jdbccode@AnkitSingh那么,在java中使用ORM是不可能的。您必须使用jdbc模板。这是项目要求。是否有其他方法可以实现此目的???@Ankit Singh,但此过程在时间和资源方面也非常昂贵。不过,如果没有实体管理器(SpringDataJAP存储库先决条件),它将不会在运行时创建存储库,并且会引发异常,应用程序也不会启动。好的,谢谢。所以你认为通过ORM是不可能的(无论是通过jpa还是其他方式),我们必须用spring来实现-jdbc@AnkitSingh,我并不是说这是不可能的。您必须根据自己的需求定制SpringIOC接口和类的使用,这不是简单或容易做到的,但也不是不可能做到的。您必须清除所有Spring IOC和依赖项注入概念,然后根据您的需求实现定制场景。感谢所有支持。我真的很感激。