Java 使用hibernate.cfg.xml时更改hibernate.properties文件的位置

Java 使用hibernate.cfg.xml时更改hibernate.properties文件的位置,java,spring,hibernate,Java,Spring,Hibernate,我们在hibernate.cfg.xml中提供db凭证,如下所示 <hibernate-configuration> <session-factory> <property name="hibernate.connection.url">url</property> <property name="hibernate.connection.username">username</property

我们在hibernate.cfg.xml中提供db凭证,如下所示

<hibernate-configuration>
    <session-factory>
       <property name="hibernate.connection.url">url</property>
       <property name="hibernate.connection.username">username</property>
       <property name="hibernate.connection.password">password</property>
    <session-factory>
<hibernate-configuration>

通过编程,您可以像这样加载XML和属性:

public class MyHibernate {

  private static final SessionFactory sessionFactory = buildSessionFactory();

  private static SessionFactory buildSessionFactory() {
    try {
        URL r1 = MyHibernate.class.getResource("/hibernate.cfg.xml");
        Configuration c = new Configuration().configure(r1);

        try {
            InputStream is = MyHibernate.class.getResourceAsStream("/hibernate.properties");
            Properties props = new Properties();
            props.load(is);
            c.addProperties(props);
        } catch (Exception e) {
            LOG.error("Error reading properties", e);
        }

        return c.buildSessionFactory();
    } catch (Throwable ex) {
        LOG.error("Error creating SessionFactory", ex);
        throw new ExceptionInInitializerError(ex);
    }
  }

  public static SessionFactory getSessionFactory() {
    return sessionFactory;
  }
}
通过春季

您可以使用PropertiesFactoryBean从文件中读取属性并配置LocalSessionFactoryBean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="hibernateProperties">
      <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location">path-to-properties-file</property>
      </bean>
    </property>
    ...
  </bean>

属性文件的路径
...

希望它有用。

通过编程,您可以像这样加载XML和属性:

public class MyHibernate {

  private static final SessionFactory sessionFactory = buildSessionFactory();

  private static SessionFactory buildSessionFactory() {
    try {
        URL r1 = MyHibernate.class.getResource("/hibernate.cfg.xml");
        Configuration c = new Configuration().configure(r1);

        try {
            InputStream is = MyHibernate.class.getResourceAsStream("/hibernate.properties");
            Properties props = new Properties();
            props.load(is);
            c.addProperties(props);
        } catch (Exception e) {
            LOG.error("Error reading properties", e);
        }

        return c.buildSessionFactory();
    } catch (Throwable ex) {
        LOG.error("Error creating SessionFactory", ex);
        throw new ExceptionInInitializerError(ex);
    }
  }

  public static SessionFactory getSessionFactory() {
    return sessionFactory;
  }
}
通过春季

您可以使用PropertiesFactoryBean从文件中读取属性并配置LocalSessionFactoryBean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="hibernateProperties">
      <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location">path-to-properties-file</property>
      </bean>
    </property>
    ...
  </bean>

属性文件的路径
...

希望它有用。

通过编程,您可以像这样加载XML和属性:

public class MyHibernate {

  private static final SessionFactory sessionFactory = buildSessionFactory();

  private static SessionFactory buildSessionFactory() {
    try {
        URL r1 = MyHibernate.class.getResource("/hibernate.cfg.xml");
        Configuration c = new Configuration().configure(r1);

        try {
            InputStream is = MyHibernate.class.getResourceAsStream("/hibernate.properties");
            Properties props = new Properties();
            props.load(is);
            c.addProperties(props);
        } catch (Exception e) {
            LOG.error("Error reading properties", e);
        }

        return c.buildSessionFactory();
    } catch (Throwable ex) {
        LOG.error("Error creating SessionFactory", ex);
        throw new ExceptionInInitializerError(ex);
    }
  }

  public static SessionFactory getSessionFactory() {
    return sessionFactory;
  }
}
通过春季

您可以使用PropertiesFactoryBean从文件中读取属性并配置LocalSessionFactoryBean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="hibernateProperties">
      <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location">path-to-properties-file</property>
      </bean>
    </property>
    ...
  </bean>

属性文件的路径
...

希望它有用。

通过编程,您可以像这样加载XML和属性:

public class MyHibernate {

  private static final SessionFactory sessionFactory = buildSessionFactory();

  private static SessionFactory buildSessionFactory() {
    try {
        URL r1 = MyHibernate.class.getResource("/hibernate.cfg.xml");
        Configuration c = new Configuration().configure(r1);

        try {
            InputStream is = MyHibernate.class.getResourceAsStream("/hibernate.properties");
            Properties props = new Properties();
            props.load(is);
            c.addProperties(props);
        } catch (Exception e) {
            LOG.error("Error reading properties", e);
        }

        return c.buildSessionFactory();
    } catch (Throwable ex) {
        LOG.error("Error creating SessionFactory", ex);
        throw new ExceptionInInitializerError(ex);
    }
  }

  public static SessionFactory getSessionFactory() {
    return sessionFactory;
  }
}
通过春季

您可以使用PropertiesFactoryBean从文件中读取属性并配置LocalSessionFactoryBean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="hibernateProperties">
      <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location">path-to-properties-file</property>
      </bean>
    </property>
    ...
  </bean>

属性文件的路径
...

希望它有用。

您如何在Java代码中调用
sessionFactory
?您如何在Java代码中调用
sessionFactory
?您如何在Java代码中调用
sessionFactory
?您如何在Java代码中调用
sessionFactory
?我不想使用InputStream类加载hibernate属性,是否有方法将其包含在Spring中感谢帮助,将尝试此方法我不想使用InputStream类加载hibernate属性,是否有方法将其包含在Spring中感谢帮助,将尝试此方法我不想使用InputStream类加载hibernate属性,有没有办法在Spring中包含此内容谢谢帮助,将尝试此方法我不想使用InputStream类加载hibernate属性,有没有办法在Spring中包含此内容谢谢帮助,将尝试此方法