当前位置: 首页 > 面试题库 >

如何使用Hibernate透明地连接到不同的数据库(开发/测试/生产)

丁雅惠
2023-03-14
问题内容

我有几个用于不同环境的不同数据库,可将我的应用程序连接到该数据库。这些对于每个安装都是恒定的,但是它们之间是不同的。换句话说,有

  1. 连接到开发数据库的开发环境
  2. 最终连接到测试数据库的测试环境
  3. 具有自己数据库的生产环境

Hibernate是通过Annotations使用的,代码不会“知道”它在哪个环境中运行。所有数据库都是mySQL驱动的,但是url,用户名和密码不同。

目前,我从应用程序中删除了hibernate.cfg.xml并将其移至应用程序服务器用户的主目录,但是出于安全原因,这似乎不是一个很好的解决方案,因为这引入了手动更新任何更新环境时更改了映射。

我真的希望有更好的解决方案,但找不到。


问题答案:

您可以将hibernate.cfg.xml捆绑在.jar中,也可以使用JPA(persistence.xml)方法,该方法允许您具有不同的“持久性单元”,然后可以根据需要选择任何变量(例如,您家中的属性文件)。有关persistence.xml的示例,请参见http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html/configuration.html#setup-
configuration-
packaging



 类似资料:
  • 我正在使用Heroku,并创建了一个新的应用程序和一个Postgres空数据库设置。 我已经安装了Heroku工具带,可以登录到Heroku并成功运行以下命令: 我在这里查看activerecord选项 但是,我运气不太好。 任何Heroku/Postgres大师能帮我指明正确的方向吗?数据库为空。作为第一步,我所要做的就是成功地连接到数据库。 Ruby文件:

  • 这是我得到的错误堆栈跟踪... 无法连接到mydb。创建到mydb的SQL模型连接连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver创建到mydb的JDBC连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver。 我正在使用oracle瘦驱动程序连接到数据库。。 SI

  • 当我使用此配置(连接到本地DB)时-一切正常: 我唯一更改的是另一台机器的IP,而我总是得到相同的错误: 这是我得到的错误: 最后一个成功发送到服务器的数据包是在0毫秒前。驱动程序没有从服务器接收到任何数据包。在Sun.Reflect.NativeConstructorAccessorImpl.NewInstance0(原生方法)在Sun.Reflect.NativeConstructorAcce

  • 问题内容: 我是hibernate和尝试事物的新手。似乎所有令人感兴趣的一件事是如何连接到不同的数据库?我在这里有两个问题: 如果在同一个Web应用程序中,我需要连接到MySQL和Oracle,该怎么办? 我正在使用MySQL,并且有两个数据库test1和test2,如何连接和检索数据? 我在博客中读到我们可以创建不同的配置文件并执行此操作。我尝试过,但是没有成功。这是我尝试过的: 其中path是

  • 问题内容: 如何使用java连接到mysql数据库? 问题答案: 逐步说明如何安装MySQL和JDBC以及如何使用它: 1.下载并安装MySQL服务器。只需按照通常的方式进行即可。每次更改时都请记住端口号。默认情况下3306。 2.下载 JDBC驱动程序并放入classpath,解压缩ZIP文件并将包含的JAR文件放入classpath。特定于供应商的JDBC驱动程序是 JDBC API的具体实现

  • 假设我有两张桌子: 联系人 活动 我可以执行一个简单的来检索可能具有某种类型activity的联系人: 这将给我所有的联系人,如果他们有任何会议: 注意,我为Jane得到了两行,因为她有两个会议。我没有为Bob获得2行,即使他有2个活动,因为它们被ON子句排除了。我也为莎莉吵架,尽管她没有任何活动。 好吧,这就是我想要做的,但麻烦的是我的模式看起来不是那样的。它有一个中介表(因为多个联系人可能是a