Foros del Web » Programación para mayores de 30 ;) » Java »

Configuración hibernate

Estas en el tema de Configuración hibernate en el foro de Java en Foros del Web. Hola! llevo poco tiempo trabajando con hibernate, he creado una pequeña aplicacion web desde Eclipse,tengo un tabla Libro en postgresql , realmente todo me funciona ...
  #1 (permalink)  
Antiguo 27/03/2013, 05:39
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Configuración hibernate

Hola! llevo poco tiempo trabajando con hibernate, he creado una pequeña aplicacion web desde Eclipse,tengo un tabla Libro en postgresql , realmente todo me funciona bien, la conexión está bien y puedo insertar,borrar,actualizar y consultar, pero tengo que ocultar la conexión a la base de datos y todo lo relacionado con la base de datos, es decir, el archivo hibernate.cfg.xml y el archivo de mapeo Libro.hbm.xml debo sacarlos de mi proyecto, se podría hacer y que siga funcionando?? Hay alguna forma de llamar al archivo de configuración estando en otro proyecto??

Cualquier ayuda es bien recibida...gracias
  #2 (permalink)  
Antiguo 27/03/2013, 06:07
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Configuración hibernate

Hola:

No entiendo eso de "ocultar". ¿Ocultar a quién o de qué? ¿Para que un usuario no pueda ver la configuración y cambiarla?

Puedes cargar el fichero de configuración desde donde quieras, basta con decírselo a Hibernate, pero eso no "oculta" el fichero, siempre tendrá que estar en algún lado.

Una forma de ocultar es meterlo dentro de tu jar. No está inaccesible, cualquiera con winrar, winzip o similar puede abrir el jar y verlo, pero al menos no está a la vista.

También puedes no tener fichero de configuración. Hibernate permite que toda la configuración necesaria la hagas desde código. Pero no es lo habitual, porque si tu programa se va a distribuir a gente, cada persona puede querer tener su propia base de datos, usuario, password, etc.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/03/2013, 06:27
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Configuración hibernate

Puedes no usar ficheros como "Libro.hbm.xml" y la configuración de hibernate.cfg.xml lo desconozco.

Mira a cerca de "Anotaciones" para no mapear los "Libro.hbm.xml".

Saludos.
  #4 (permalink)  
Antiguo 01/04/2013, 11:47
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Configuración hibernate

La idea de ocultar la conexión a la base de datos con hibernate es para que el desarrollador de la aplicación le sea indiferente la base de datos a la que me conecto, simplemente debería conocer las funciones que se puedan hacer pero abstrayéndose lo máximo posible.
Supongo que metiéndolo en un .jar no me sirve porque sigue siendo accesible, con las anotaciones aunque no tenga Libro.hbm.xml tengo que declarar Libro pero en lugar de en un archivo .hbm.xml en el propio java bean Libro.
Chuidiang cómo podría cargar la configuración desde otro sitio? he intentado hacerlo sacando los dos archivos, y en la llamada sessionFactory = new Configuration().configure().buildSessionFactory(); pasarle la ruta del archivo así .configure("C:/eclipse 4.2/...) pero me da un error porque no encuentra el fichero. Se supone que con configure() busca el archivo hibernate.cfg.xml no???


Gracias por las respuestas
  #5 (permalink)  
Antiguo 01/04/2013, 12:34
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Configuración hibernate

Si le echas un ojo a la API http://docs.jboss.org/hibernate/orm/...iguration.html verás con configure(string) lo lee como si fuera recurso, es decir, el fichero debe estar en el CLASSPATH. Para cargar un fichero cualquiera, debes usar el método configure(File).

Pero sigo sin entender qué te arregla eso, el fichero seguirá estando accesible..... e incluso más accesible que si está dentro del jar.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 02/04/2013, 01:46
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Configuración hibernate

Bueno por lo menos saqué fuera del proyecto el archivo hibernate.cfg.xml, ahora falla el archivo de mapeo Libro.hbm.xml, he metido ambos en una carpeta llamada conf que está en C, y queda así...

File file = new File("C:/conf/hibernate.cfg.xml");
sessionFactory=newConfiguration().configure(file). buildSessionFactory();
Session session = sessionFactory.openSession();

Puedo mapear Libro desde otra ubicación que no sea el classpath??
Hasta ahora mapeaba Libro en el archivo hibernate.cfg.xml así:
<mapping resource="Libro.hbm.xml"/>

Podría ser algo así...

¿¿¿¿<mapping resource="C:/conf/Libro.hbm.xml" /> ??????
Me parece que ocultar el fichero Libro.hbm.xml va a ser más complicado

chuidiang no sé si voy bien, realmente esto es lo único que se me ha ocurrido para ocultar un poco la parte de conexión, en principio no es una aplicación grande, estoy haciendo unas prácticas de empresa y esto es una iniciación para después hacer algo más gordo, no sé exactamente para qué quiero ocultar esto pero me lo han pedido...asi que voy probando

Gracias
  #7 (permalink)  
Antiguo 02/04/2013, 02:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Configuración hibernate

Hola:

Lo habitual es ocultar el fichero de conexión para que los usuarios no tengan acceso al usuario y password de la base de datos. Ocultar los hbm.xml no es en principio tan importante, salvo que pueden dar información de cómo están construidas las tablas de la base de datos.

Mover el fichero de tu proyecto a otra ubicación NO OCULTA el fichero, sólo lo cambia de sitio donde está.

Dejar los ficheros dentro del jar es más seguro. Cualquiera con un poco de conocimiento de lo que es un jar puede acceder a ello, pero ya descartas a un montón de usuarios que no saben nada de java y que quizás nunca se les ocurra abrir un fichero jar con un winzip o winrar.

De todas formas, dices que la aplicación es web, así que imagino que toda la conexión a base de datos con hibernate está en el lado del servidor, por lo que dejar el fichero dentro de un jar (o incluso fuera) y dar los permisos adecuados de acceso en el servidor debería ser más que suficiente.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 02/04/2013, 04:41
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Configuración hibernate

Bien al final lo he metido todo en un .jar y así funciona, pero sigo pensando que tiene que haber algo más.
He encontrado esto sobre buenas prácticas con hibernate:

Cita:
Considere abstraer su lógica empresarial de Hibernate:

Oculte el código de acceso a datos de Hibernate detrás de una interfaz. Combine los patrones DAO y sesión local de hilo. Incluso puede hacer algunas clases persistentes por medio de JDBC escrito a mano, asociadas a Hibernate por medio de un UserType. Sin embargo, este consejo va para las aplicaciones "suficientemente grandes". No es apropiado para una aplicación con cinco tablas.
Mi actual aplicación sólo tiene 1 tabla, pero realmente estoy preparando eclipse para realizar una aplicación bastante más grande, creo que esto es a lo que se refiere mi jefe...pero no sé como
  #9 (permalink)  
Antiguo 02/04/2013, 04:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Configuración hibernate

Hola:

Esas buenas prácticas no tienen nada que ver con ocultar el fichero de configuración. Son más bien prácticas de buena programación que básicamente dicen que separes la lógica de tu programa de hibernate lo más que puedas, de forma que si más adelante decides cambiar hibernate por otra cosa no te cueste demasiado.

Creo que primero tendrías que aclarar con tu jefe qué es exactamente lo que quiere ...

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 08/04/2013, 03:33
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Configuración hibernate

Hola!
Bueno algo he avanzado, el problema era que en una aplicacion web donde tengo el cliente y el servidor en la misma máquina no era posible sacar los archivos de configuración más, como bien me dijiste chuidiang se podían, mover a otra ubicación, o meter en un .jar pero tenían que estar presentes en el servidor.

La cosa es que ahora tengo la aplicación grande y el asunto es, en mi máquina tener la aplicación y en otro equipo que sería el servidor, tener hibernate y postgresql.
Desde mi ordenador tendría que conectarme al otro equipo, pero no sé si eso sería usando socket ?? de esta forma tendría todo lo relacionado con hibernate en el equipo servidor,no sé si así correría la aplicación...
O bien, manteniendo el archivo hibernate.cfg.xml en el cliente y cambiando la url en lugar de localhost poner la url de la otra máquina...algo así:

Cita:
<property name="hibernate.connection.url">jdbc:postgresql://192.168.1.2:5432/postgres</property>

Etiquetas: hibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.