Introduccion A Hibernate
Introduccion A Hibernate
Introducción a
HIBERNATE
La persistencia usando bases de datos es el principal
mecanismo usado en el desarrollo de aplicaciones para
lograr que la información asociada a las mismas se guarde
en el mediano y largo plazo. Las bases de datos, en la
mayoría de los casos, se almacenan en servidores específicos
a un sistema de gestión de bases de datos (SGBD). Por su
parte, Java ofrece la API Java Database Connectivity (JDBC)
para acceder a dichas bases de datos. Como sabemos, JDBC
constituye un puente que permite comunicar las aplicaciones
escritas en Java con bases de datos en general, y con MySQL
en particular.
com/leonjaramillo/udea_ruta2_ciclo2
de MySQL en el archivo pom.xml del proyecto2. Para
MySQL, la dependencia se puede encontrar aquí: https://
mvnrepository.com/artifact/mysql/mysql-connector-
java/8.0.26. En el caso de Hibernate, la podemos encontrar
aquí: https://mvnrepository.com/artifact/org.hibernate/
hibernate-core/5.6.8.Final.
<!-- https://mvnrepository.com/artifact/mysql/mysql-connec-
tor-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hiber-
nate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.8.Final</version>
</dependency>
Configuración de Hibernate en el
Proyecto
Una vez hemos configurado las dependencias necesarias
para el proyecto es necesario, en el caso de Hibernate,
construir el archivo de configuración del proyecto para el
framework. Se trata del archivo hibernate.cfg.xml. Este
se debe guardar en la carpeta src/main/resources del
proyecto. Si no existe, debemos crearla.
https://github.com/leonjaramillo/udea_ruta2_ciclo2/blob/
main/pom.xml
funcionamiento del framework. Ante lo complejo que este
puede llegar a ser, la recomendación es tomar como base
un archivo ofrecido en la documentación y modificarlo de
acuerdo a nuestras necesidades. A continuación, tenemos un
archivo de ejemplo para el proyecto de ejemplo del presente
documento3.
<hibernate-configuration>
<session-factory>
github.com/leonjaramillo/udea_ruta2_ciclo2/blob/main/
main/resources/hibernate.cfg.xml
<!-- Disable the second-level cache -->
<property name=”cache.provider_class”>org.hibernate.
cache.internal.NoCacheProvider</property>
</session-factory>
</hibernate-configuration>
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name=”vendedores”)
public class Vendedor implements Serializable {
@Id
private int documento;
@Column(nullable=false)
private String nombres;
@Column(nullable=false)
private String apellidos;
private String ciudad;
public Vendedor() {
}
4
La clase referida se puede encontrar aquí: https://github.com/
leonjaramillo/udea_ruta2_ciclo2/tree/main/main/java/co/
edu/udea/udea_ruta2_ciclo2/hibernate
public int getDocumento() {
return documento;
}
@Override
public String toString() {
return “Vendedor{“ + “documento=” + documento + “, nom-
bres=” + nombres + “, apellidos=” + apellidos + “, ciudad=” +
ciudad + ‘}’;
}
}
5
La clase referida se puede encontrar aquí: https://github.com/
leonjaramillo/udea_ruta2_ciclo2/tree/main/main/java/co/
edu/udea/udea_ruta2_ciclo2/hibernate
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistry-
Builder;
import org.hibernate.query.Query;
crearRegistros(factory);
listarRegistros(factory);
editarRegistros(factory);
listarRegistros(factory);
borrarRegistros(factory);
listarRegistros(factory);
}