APRENDE HIBERTATE EN 1,2,3 CON WAFFLES
/*
INICIO
Para arrancar, se debe seguir los siguientes puntos en orden:
- Asegurarse que la BD está normalizada, con sus PrimaryKey y sus ForeignKey bien declaradas
- Se crea el nuevo proyecto
- Se le da click derecho -> propiedades -> librerias, y se agrega "Hibernate" y la conexion a la BD
(En mi caso MySQL JDBC Driver)
- Se creanuevo -> Hibernate -> Hibernate Configuration Wizard, y se crea la nueva conexion a la BD,
y se guarda en paquete "src" (Puede ser cualquier otro nombre)
Esto sirve para tener la conexion a la BD
- Se crea nuevo -> Hibernate -> Hibernate Reverse Engineering Wizard, para obtener el nombre de las
tablas para ser mapeadas, se crea en el mismo paquete "src"
- Se crea nuevo ->Hibernate -> Hibernate Mapping Files and POJOs from Database en paquete "pojo",
con esto se mapean todas las tablas de la BD y sus relaciones, tomando los 2 archivos antes creados.
NOTA: Que es POJO? "Plain Old Java Object", POJO: Clase simple sin implementaciones,
en éste caso es la clase de cada tabla de la BD
- se crea nuevo -> Hibernate -> HibernateUtil en el paquete "util", éstesirve para manejar la
sesion de conexion a la BD
- Todo el código escrito a continuación, va en el main, checar los nombres dados a los archivos anteriores
en util y pojo, para corregir los import
*/
/*
DUMP DE LA BASE DE DATO A USAR
NOTA: Si no jala su ejecución, meterlo en un archivo on extension "sql" e importarlo como un DUMP
La BD fue construída en MySQL usandoSQLyog
--------------------------------------------------------
CREATE DATABASE `usuarios`;
USE `usuarios`;
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles` (
`IdRoles` int(11) NOT NULL AUTO_INCREMENT,
`rol` varchar(100) DEFAULT NULL,
PRIMARY KEY (`IdRoles`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert into `roles`(`IdRoles`,`rol`) values(1,'Administrador'),(2,'Jodidos');
DROP TABLE IF EXISTS `roles_usuarios`;
CREATE TABLE `roles_usuarios` (
`IdRoles_Usuarios` int(11) NOT NULL AUTO_INCREMENT,
`IdUsuario` int(11) DEFAULT NULL,
`IdRoles` int(11) DEFAULT NULL,
PRIMARY KEY (`IdRoles_Usuarios`),
KEY `FK_roles_usuarios_roles` (`IdRoles`),
KEY `FK_roles_usuarios_usuarios` (`IdUsuario`),
CONSTRAINT`FK_roles_usuarios_usuarios` FOREIGN KEY (`IdUsuario`) REFERENCES `usuarios` (`IdUsuario`),
CONSTRAINT `FK_roles_usuarios_roles` FOREIGN KEY (`IdRoles`) REFERENCES `roles` (`IdRoles`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
insert into `roles_usuarios`(`IdRoles_Usuarios`,`IdUsuario`,`IdRoles`) values (1,1,1),(2,2,1),(3,3,2);
DROP TABLE IF EXISTS `usuarios`;
CREATE TABLE `usuarios` (`IdUsuario` int(11) NOT NULL AUTO_INCREMENT,
`usuario` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
PRIMARY KEY (`IdUsuario`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
insert into `usuarios`(`IdUsuario`,`usuario`,`password`) values (1,'Admin','12345'),(2,'UsuarioX','12345'),(3,'Prueba','12345');
*/
package usuarios_hibernate; //El nombre delpaquete donde está incluida este codigo
import Util.NewHibernateUtil;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import pojo.Roles;
import pojo.RolesUsuarios;
import pojo.Usuarios;
public class Usuarios_hibernate {
static Sessionsession; //variable estática para mandarla a llamar sin construir el objeto "Usuarios_hibernate"
static Transaction transaction;
//Para Insertar, Actualizar y Borrar uno o varios registros, se requiere crear una transaccion de la sesion abierta
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
session =...
Regístrate para leer el documento completo.