我正在尝试更改 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/