JAVA HIBERNATE
Links
//HIBERNATE Netbeans Basics
Crear Nuevo proyecto Hibernate
1. Crea un fichero xml con Asistente/Wizard. Definir la base de datos. Elegir conexion
hibernate.cfg.xml con los parámetros de conexión. Decimos a que BD nos conectamos
deben aparecer datos:
2. Crear en el proyecto ingenieria inversa Reverse engineering (elegir folder a guardar archivo reveng1.xml)
3. Crear en el proyecto Hibernate mapping files and POJO’s from database (tiene que estar el archivo reveng1.xml y hay que elegir el paquete correcto). Getter and Setters
4. Crear en el proyecto Hibernate util (elegir paquete): Crea session (como una conexión a base de datos)
Empezar a trabajar
Session:
Session sesion =NewHibernateUtil.getSessionFactory().openSession();
session.load() cargar objetos te un tipo tal class→ clave principal
sesion.close();
System.exit(0);
//BASE DE DATOS
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tarea04.hibernate_to_xml;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
//import static tarea04.hibernate_to_xml.Tarea04Hibernate_to_XML.lista;
/**
*
* @author Alberto Toribio
*/
public class BaseDatos {
Session sesion;
public boolean hayError = false;
public String mensajeError = "";
protected Clientes listado;
public BaseDatos() {
///* PARA QUITAR LOS MENSAJES DE AVISO DE HIBERNATE..*********************************************
LogManager logManager = LogManager.getLogManager();
Logger logger = logManager.getLogger("");
logger.setLevel(Level.SEVERE); //se podr�a poner Level.OFF para que no saque ningun mensaje
////////////******************************************
// nos conectamos a la base de datos..
try {
sesion = NewHibernateUtil.getSessionFactory().openSession();
hayError = sesion == null;
if (hayError) {
this.mensajeError = "No conecta";
}
} catch (HibernateException ex) {
this.mensajeError = ex.getLocalizedMessage();
this.hayError = true;
}
}
// void MostrarUnCliente(){
// Cliente c = (Cliente ) this.sesion.load(Cliente.class, 1);
// System.out.println ( "Nombre del cliente :"+ c.getNombre());
//}
//METODO PARA OBTENER LOS CLIENTES DE LA BASE DE DATOS, CREARLOS COMO OBJETOS Y AÑADIRLOS A LA LISTA
void ObtenerListadoClientes(){
listado = new Clientes();
List<Cliente> listadoClientes = sesion.createQuery("from Cliente where saldo < 0 ").list();
for (Cliente c: listadoClientes ) {
System.out.println (c.getNombre()+c.getId()+c.getSaldo());
Cliente nuevoCliente = new Cliente(c.getId(), c.getNombre(),c.getSaldo()); //creamos un cliente
listado.addCliente(nuevoCliente);//añadimos a la lista
}
}
//METODO PARA CONVERTIR A XML DESDE UN ARRAYLIST DE CLIENTES
void ConvertiraXML(){
ConversorXML conversor = new ConversorXML();
conversor.ConvierteAXML(listado);
}
List executeQuery(String query) // hacer consulta diretamente
{
// si no se ha puesto : this.sesion.clear(); en cada modificaci�n, hay que hacerlo aqui. fuerza a cargar de nuevo los objetos de disco a memoria..
return sesion.createQuery(query).list();
}
Object load(String clave, Class c) // que se llame igual que el metodo
{
return this.sesion.load(c, clave);
}
Object leePorClave(String clave, Class c) // explicando que hace realmente!!
{
return this.sesion.load(c, clave);
}
public void close() {
this.sesion.close();
}
Session conexion() {
return this.sesion;
}
}
//PARAMETROS
public class Parametros {
static BaseDatos BD; // base de datos de todo el programa
static {// se va a ejectuar sin necesidad de ser llamado
BD = new BaseDatos();
}
protected void finalize() throws Throwable {
BD.close(); // por si se nos olvida cerrarla base de datos..
super.finalize();
}
public Session conexion() {
return BD.conexion();
} // para hacer mas comodo el uso
}
//JAVA <