Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时将数据库信息传递给Hibernate?_Java_Hibernate_Jpa_Orm_Openjpa - Fatal编程技术网

Java 在运行时将数据库信息传递给Hibernate?

Java 在运行时将数据库信息传递给Hibernate?,java,hibernate,jpa,orm,openjpa,Java,Hibernate,Jpa,Orm,Openjpa,hibernate的问题是,需要将数据库信息(username/pw等)放入xml文件中。但是,如果您在Amazon web服务上部署应用程序,例如在Beanstalk上,您可以通过System.getProperty(“RDS\U DATABASE\U USER”)等获得db信息。优点是,如果创建了更多应用程序实例,db信息将自动传递,而无需手动编辑配置文件 有没有办法在运行时将db信息传递给hibernate?如果没有,是否有另一个好的java ORM库,您可以在运行时将此信息传递给它?我正

hibernate的问题是,需要将数据库信息(username/pw等)放入xml文件中。但是,如果您在Amazon web服务上部署应用程序,例如在Beanstalk上,您可以通过
System.getProperty(“RDS\U DATABASE\U USER”)
等获得db信息。优点是,如果创建了更多应用程序实例,db信息将自动传递,而无需手动编辑配置文件


有没有办法在运行时将db信息传递给hibernate?如果没有,是否有另一个好的java ORM库,您可以在运行时将此信息传递给它?我正在使用MySQL。

事实上,该方法允许您提供属性映射。使用此映射,您可以动态提供用户名和密码

如何做到这一点很可能取决于您使用的具体框架

根据您问题中的标记,不清楚您是在使用Hibernate还是在使用OpenJPA

本节中的Open JPA文档提供了可以使用的属性列表

Map<String,String> properties = new HashMap<>();
properties.put("openjpa.ConnectionUserName", "userName");
properties.put("openjpa.ConnectionPassword", "password");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPersistenceUnit",properties);
Map properties=newhashmap();
properties.put(“openjpa.ConnectionUserName”、“用户名”);
properties.put(“openjpa.ConnectionPassword”、“password”);
EntityManagerFactory emf=Persistence.createEntityManagerFactory(“MyPersistenceUnit”,属性);
Hibernate支持一组类似的属性。很可能您的persistence.xml文件中已经有了它们


一些依赖项注入框架,如Spring,甚至不需要persistence.xml文件,并且可以从其他地方动态读取这些属性,如环境变量。

我使用openJPA只是为了表明,如果Hibernate无法做到这一点,我愿意使用它作为替代方案。这种传递属性的方法可以与Hibernate一起使用,还是只与OpenJPA一起使用?@ClickUpvote它可以与所有JPA实现一起使用,如Hibernate、eclipse link和OpenJPA。如果您可以添加一个示例,说明它将如何与Hibernate一起使用,我可以accept@ClickUpvote对于一个拥有27k声誉的人来说,我对你的要求感到惊讶。您可以在另一个答案中看到Hibernate属性的示例:。我很确定你能搞清剩下的部分,那就是使用XML文件,我要寻找的是一种在运行时传递它的方法。我以前从未与任何ORM合作过。