I try to connect to a postgresql database using hibernate in Java 1.8.
My hibernate.cfg.xml has variables that I defined in a db.properties file.
I try several ways, but it doesn't work for me.
My code:
File f = new File("hibernate.cfg.xml");
java.util.Properties properties = new Properties();
try {
properties.load(new FileInputStream("db.properties"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(properties.getProperty("db.addr"));
System.out.println(properties.getProperty("db.port"));
Configuration configuration = new Configuration(); configuration.configure(f).addProperties(properties);
ServiceRegistryBuilder registry = new ServiceRegistryBuilder();
registry.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = registry.buildServiceRegistry();
// loads configuration and mappings
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
// obtains the session
Session session = sessionFactory.openSession();
session.beginTransaction();
.....
session.getTransaction().commit();
session.close();
My hibernate.cfg.xml is below:
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.spatial.dialect.postgis.PostgisDialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/metadata
</property>
..........
........
The configuration still uses ${db.addr}:${db.port}
[main] DEBUG org.hibernate.cfg.Configuration - connection.url=jdbc:postgresql://${db.addr}:${db.port}/metadata
Did I miss something?
Thanks much