如何外部化 Hibernate 3.6 配置

How to externalize Hibernate 3.6 configuration

我有一个使用 Hibernate 3.6.3 作为 ORM 的应用程序。我创建了 hibernate.cfg.xml 配置文件并将其添加到构建路径中。这在我的开发环境中运行良好。现在我需要使用动态数据库连接凭据为生产服务器创建一个 jar。我花了几个小时搜索如何做到这一点,但所有示例都使用:

我可以分离 Hibernate 数据库配置,还是需要将其作为参数传递并以编程方式配置 Hibernate?

您已经提出了两个解决方案:

  • 构建时配置(使用 Maven),但您在构建时没有凭据

  • 运行-时间配置解析,可以做到:

    1. 使用 Spring(你不能使用)

    2. 使用您自己的编程机制:

      Configuration configuration = new Configuration();
      configuration.configure();
      
      configuration.setProperty("hibernate.connection.url", dbUrl);
      configuration.setProperty("hibernate.connection.username", dbUser);
      configuration.setProperty("hibernate.connection.password", dbPassword); 
      
      return configuration.buildSessionFactory();