如何在没有多个 cfg.xml 文件的情况下通过休眠处理多个数据库

马南沙 |

我们有一个基于 Java-Hibernate 的 Web 应用程序,我们在其中处理 PostgreSQL 数据库。(它是一个包含多个模式的单个数据库。)

目前我们面临可扩展性问题,因此我们决定在多个数据库中拆分我们的架构。

示例

  • 以前我们有名为“mydb”的数据库。
  • 现在我们将数据库拆分为“mydb_1”、“mydb_2”、“mydb_3”等......(随着负载的增加,我们将创建新的数据库。)

问题

  • 如何从一个 *.cfg.xml 管理多个数据库?(我们不想每次都引入多个 *.cfg.xml(针对每个数据库)。)
  • 这可以通过较新的休眠版本来实现吗?(我们准备升级我们的 Hibernate 版本)
  • 我们需要创建会话工厂池吗?(我认为这是一个坏主意和想法...... :) )

注意:如果有人可以为此提供教程/文档链接,那就太好了。

类似问题:Hibernate 使用多个数据库

(我期待类似的答案,但没有多个 cfg.xml :()

蒂埃里

好的,所以你的要求不是

只有一个休眠配置文件

但要能够

在不停止服务器的情况下创建新的 sessionFactory。

您引用的问题中的代码如下所示:

Configuration config = new Configuration().configure("<complete path to your cfg.xml file>");
SessionFactory sessionFactory = config.buildSessionFactory();

在获取 sessionFactory 之前,您可以看到首先有一个配置对象。在构建会话工厂之前,只需在代码中摆弄它:

Configuration config = new Configuration().configure("<complete path to your cfg.xml file>");
config.setProperty("datasource", new_datasource_to_the_new_database)
SessionFactory sessionFactory = config.buildSessionFactory();
  • "datasource"您在当前 hibernate.cfg.xml 文件中使用的实际密钥替换密钥,以便覆盖它。构建新数据源,与您当前构建它的方式相同,指向新数据库。
  • 将会话工厂保存在可访问的位置
  • 在进行治疗时,选择正确的 sessionFactory 并从那里获取会话。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过重用cfg.xml和util类连接多个数据库?

有没有办法在netbeans / eclipse中自动生成hibernate.cfg.xml文件?

如何在没有多个背景 xml 的情况下更改自定义 toast 消息的背景?

从* .hbm.xml和* .cfg.xml本地化休眠以运行所有项目

无法为休眠找到 cfg.xml

在Java 9中如何在没有外部库的情况下创建XML文件?

具有hibernate.cfg.xml的MappingException

具有Hibernate.cfg.xml的PropertyPlaceholderConfigurer

如何在没有 OpenXml SDK 的情况下仅使用字符串将多个 openxml 格式的 xml 打包到一个 xlsx 文件?

NLTK CFG语法与多个单词

hibernate.cfg.xml包含有关MySQL数据库的信息,为什么我收到此异常?

如何在hibernate.cfg.xml中连接Postgresql

如何将属性从外部文件包含到hibernate.cfg.xml?

如何使用hibernate.properties文件而不是hibernate.cfg.xml

如何将C ++变量存储在INI,CFG或XML文件中?

从hibernate.cfg xml文件中提取数据库配置

如何在Haskell中读取.cfg文件

如何在 .cfg 文件中存储带有 # 的单词

如何在没有XML文件的情况下配置Spring ACL

OptaPlanner:如何在没有.xml配置文件的情况下构建求解器?

如何在没有XML文件的情况下将Blogger网站导入Jekyll?

如何从不同位置加载hibernate.cfg.xml

Java文件中的hibernate.cfg.xml替代文件

有没有办法对多个语句使用cfg(feature)检查?

hibernate.cfg.xml-从属性文件设置参数

如何在没有重复项的情况下合并多个数组

ConfigurationException:无法在项目根文件夹中找到cfg.xml资源[hibernate.cfg.xml]

在没有ansible.cfg的情况下运行Ansible设置模块

Eclipse Hibernate.cfg.xml 正在从 MySQL 链接“sys”数据库