6

我正在尝试更改 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 看起来总是一样的。

4

2 回答 2

5

为了使其工作,您应该使用该对象构建您sessionFactoryConfiguration对象,然后使用它sessionFactory来获取您的会话。

就像是 :

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包含这些值的文件。

于 2013-07-21T17:09:35.500 回答
0

更新配置将更新已从配置文件中读取到内存中的配置。它不会更新文件本身(在大多数情况下,它是只读的,因为从 war 或 jar 文件中读取)。

于 2013-07-21T17:09:25.387 回答