java - hibernate - 如何在运行时更改属性

标签 java database hibernate

我正在尝试更改 hibernate.cfg.xml 中的属性,但我的代码不起作用。

public static void changeConfiguration(String login, String password){
    Configuration cfg = new Configuration();
    cfg.configure();
    cfg.setProperty("hibernate.connection.password", password);
    cfg.setProperty("hibernate.connection.username", login); 

}

知道为什么那不起作用吗?我的文件 hibernate.cfg.xml 看起来总是一样。

最佳答案

要使其正常工作,您应该使用该 Configuration 对象构建您的 sessionFactory,然后使用该 sessionFactory 获取您的 session 。

类似的东西:

public static SessionFactory changeConfiguration(String login, String password){
    Configuration cfg = new Configuration();
    cfg.configure();
    cfg.setProperty("hibernate.connection.password", password);
    cfg.setProperty("hibernate.connection.username", login); 
    SessionFactory sessionFactory = cfg.buildSessionFactory();
    return sessionFactory;
}

但最后,它不会更改hibernate.cfg.xml 文件,它会在运行时覆盖或定义属性。如果您不想将您的用户名和密码放在 hibernate.cfg.xml 文件中,您可能应该使用包含这些值的 .properties 文件。

关于java - hibernate - 如何在运行时更改属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17774758/

相关文章:

java - 64 位 Java 无法通过 ODBC Access 32 位 MS Access 数据库

java - 如何从本地计算机使用 IAM 角色访问 S3

php - 将 .txt 文件的最后 25 行发布到网站?

java - 如何使用 lombok 注释从 jpa 实体注释获取字段值?

java - 实体字段集上的 Hibernate NullPointerException(更新)

java - 获取 logcat 以显示整个下载的 HTML

java - Google map 在 Android 应用程序中不显示图 block

java - delete sql语句违反完整性约束

database - 为什么 PostgreSQL 重新分配角色命令,更改模板数据库的所有者

java - 文档 - 它是一个模板吗?