Foro sobre Java EE > Hibernate
En la documentación de Hibernate hay una sección donde explican cómo configurar el framework con programación. Si lo que pides es posible, allí debe venir como.
¿Por qué quieres pasar esos datos proporcionados por el usuario? Estás tratando de implementar un gestor para administrar bases de datos?
Pues es que hay varios tipos de usuarios que van a usar la base de datos, entonces nada mas arrancar la aplicación, yo pido usuario y contraseña, y es con este usuario y esta contraseña, con la que me conecto a la base de datos, y me permite hacer unas u otras cosas.
Por otro lado, cada semana se cambian las contraseñas de acceso a base de datos, y no quiero tener que estar modificando el archivo hibernate,conf.
Gracias y un saludo
Hola Sergio.
Hace tiempo hice una pequeña app swing en la que le daba la opción al usuario que escogiera el motor de base de datos con la que desee trabajar( mysql, sqlite,sql server).
Esta "magia" la lograba con el hibernate. Una vez que el usuario elegía el motor de su elección, yo guardaba esos datos ( hibernate.dialect, hibernate.connection.driver_class,hibernate.connection.username,etc) en un achivo properties para que en la próxima ejecución de la app jalara estos datos, los insertara el el hibernate y buala, ya estaba conectado. Te muestro webs que me sirvieron de ejemplo:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
http://www.mkyong.com/hibernate/how-to-load-hibernate-cfg-xml-from-different-directory/
La idea básica es : Configuration cfg = new Configuration(); y a este obj cfg le paso en tiempo de ejecución lo parámetros que quiera.
Aquí un ejemplo:
Configuration cfg = new Configuration();
// si el archivo hibernate.cfg.xml esta el el root
cfg.configure("hibernate.cfg.xml"):
// si el archivo hibernate.cfg.xml esta en otro paquete
cfg.configure("/com/mkyong/persistence/hibernate.cfg.xml"):
// usando el metodo: setProperty le paso todos los parametros que quiera:
cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect");
cfg.setProperty("hibernate.connection.username", "Richard");
// etc
SessionFactory sessionFactory = cfg.buildSessionFactory();
return sessionFactory;
Una vez que tienes el objeto SessionFactory todo lo demas
es pan comido :) !!
Ojala te sirva.
Saludos.
Buenas tardes, tengo que usar hibernate para acceder a una base de datos mysql, soy nuevo en hibernate, mis dudas son las siguientes:
Como puedo pasar desde mi aplicacion java, el usuario y la contraseña, que luego usa hibernate.hbm.xml para conectarse con la base de datos.
Ahora mismo lo tengo asi:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/clinica</property>
<property name="hibernate.connection.username">clinica</property>
<property name="hibernate.connection.password">clinica</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="hibernate/Param.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Lo que quiero es poder pasarle yo el usuario y la password en ejecución.
Gracias