<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GUADAPOL AUTOMATIZACIONES</title>
    <description>The latest articles on DEV Community by GUADAPOL AUTOMATIZACIONES (@guadapol_automatizaciones).</description>
    <link>https://dev.to/guadapol_automatizaciones</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3645926%2F743677da-d0b9-4063-8d36-ba6602ec526e.png</url>
      <title>DEV Community: GUADAPOL AUTOMATIZACIONES</title>
      <link>https://dev.to/guadapol_automatizaciones</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guadapol_automatizaciones"/>
    <language>en</language>
    <item>
      <title>CRUD CON JAVA CON HIBERTANTE (DEMO) GUIA PARA PERSONAL EN PRACTICAS(1-3) NIVEL 2</title>
      <dc:creator>GUADAPOL AUTOMATIZACIONES</dc:creator>
      <pubDate>Thu, 04 Dec 2025 10:43:31 +0000</pubDate>
      <link>https://dev.to/guadapol_automatizaciones/crud-crud-con-java-con-hibertante-demo-guia-para-persanal-en-practicas1-3-nivel-2-5of</link>
      <guid>https://dev.to/guadapol_automatizaciones/crud-crud-con-java-con-hibertante-demo-guia-para-persanal-en-practicas1-3-nivel-2-5of</guid>
      <description>&lt;p&gt;GUIA PRACTICA DESDE 0 PARA PROYECTOS EN HIBERNATE USANDO JAVA &lt;br&gt;
CRUD BASICO&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HibernateUtil.java&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package org.example;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            return new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Error en la creacion de SessionFactory: " + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        getSessionFactory().close();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Registro.java&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package org.example;

import jakarta.persistence.*;

@Entity
@Table(name = "registros")
public class Registro {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, length = 100)
    private String nombre;

    @Column
    private String email;

    @Column
    private int edad;

    // Constructor vacío obligatorio
    public Registro() {}

    // Constructor con parámetros
    public Registro(String nombre, String email, int edad) {
        this.nombre = nombre;
        this.email = email;
        this.edad = edad;
    }

    // Getters y Setters
    public Long getId() {
        return id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    @Override
    public String toString() {
        return "Registro{" +
                "id=" + id +
                ", nombre='" + nombre + '\'' +
                ", email='" + email + '\'' +
                ", edad=" + edad +
                '}';
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Main.java&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package org.example;

import org.hibernate.Session;
import org.hibernate.Transaction;

import java.util.List;

public class Main {

    public static void main(String[] args) {

        listarRegistros();

        // Cerrar SessionFactory
        HibernateUtil.shutdown();
    }

    public static void crearRegistro(String nombre, String email, int edad) {
        Transaction transaction = null;

        try (Session session = HibernateUtil.getSessionFactory().openSession()) {

            transaction = session.beginTransaction();

            Registro registro = new Registro(nombre, email, edad);
            session.persist(registro);

            transaction.commit();
            System.out.println("Registro creado: " + registro);

        } catch (Exception e) {
            if (transaction != null) transaction.rollback();
            e.printStackTrace();
        }
    }

    public static void listarRegistros() {
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {

            List&amp;lt;Registro&amp;gt; registros = session
                    .createQuery("FROM Registro", Registro.class)
                    .list();

            System.out.println("\n=== Lista de Registros ===");
            registros.forEach(System.out::println);
        }
    }

    public static void actualizarRegistro(Long id, String nuevoNombre) {
        Transaction transaction = null;

        try (Session session = HibernateUtil.getSessionFactory().openSession()) {

            transaction = session.beginTransaction();

            Registro registro = session.get(Registro.class, id);

            if (registro != null) {
                registro.setNombre(nuevoNombre);
                session.merge(registro);
                System.out.println("Registro actualizado: " + registro);
            }

            transaction.commit();

        } catch (Exception e) {
            if (transaction != null) transaction.rollback();
            e.printStackTrace();
        }
    }

    public static void eliminarRegistro(Long id) {
        Transaction transaction = null;

        try (Session session = HibernateUtil.getSessionFactory().openSession()) {

            transaction = session.beginTransaction();

            Registro registro = session.get(Registro.class, id);

            if (registro != null) {
                session.remove(registro);
                System.out.println("Registro eliminado con ID: " + id);
            }

            transaction.commit();

        } catch (Exception e) {
            if (transaction != null) transaction.rollback();
            e.printStackTrace();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;hibernate.cfg.xml&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&amp;gt;
&amp;lt;hibernate-configuration&amp;gt;
    &amp;lt;session-factory&amp;gt;

&amp;lt;property name="hibernate.connection.driver_class"&amp;gt;com.mysql.cj.jdbc.Driver
&amp;lt;/property&amp;gt;

&amp;lt;property name="hibernate.connection.url"&amp;gt;jdbc:mysql://localhost:3727/registro
&amp;lt;/property&amp;gt;

&amp;lt;property name="hibernate.connection.username"&amp;gt;root&amp;lt;/property&amp;gt;
&amp;lt;property name="hibernate.connection.password"&amp;gt;RootRott&amp;lt;/property&amp;gt;
&amp;lt;property 
name="hibernate.dialect"&amp;gt;org.hibernate.dialect.MySQLDialect 
&amp;lt;/property&amp;gt;

&amp;lt;property name="hibernate.show_sql"&amp;gt;true&amp;lt;/property&amp;gt;
&amp;lt;property name="hibernate.format_sql"&amp;gt;true&amp;lt;/property&amp;gt;
&amp;lt;property name="hibernate.hbm2ddl.auto"&amp;gt;update&amp;lt;/property&amp;gt;

&amp;lt;mapping class="org.example.Usuario"/&amp;gt;
&amp;lt;/session-factory&amp;gt;
&amp;lt;/hibernate-configuration&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;pom.xml&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&amp;gt;
    &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;

    &amp;lt;groupId&amp;gt;org.example&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;untitled1&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;

    &amp;lt;properties&amp;gt;
        &amp;lt;maven.compiler.source&amp;gt;24&amp;lt;/maven.compiler.source&amp;gt;
        &amp;lt;maven.compiler.target&amp;gt;24&amp;lt;/maven.compiler.target&amp;gt;
        &amp;lt;project.build.sourceEncoding&amp;gt;UTF-8&amp;lt;/project.build.sourceEncoding&amp;gt;
    &amp;lt;/properties&amp;gt;
    &amp;lt;dependencies&amp;gt;
        &amp;lt;!-- Hibernate Core --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.hibernate.orm&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;hibernate-core&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;6.2.2.Final&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;

        &amp;lt;!-- MySQL Connector --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;com.mysql&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;mysql-connector-j&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;9.1.0&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
    &amp;lt;/dependencies&amp;gt;
&amp;lt;/project&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;☺️ &lt;a href="mailto:guadapol.auto@gmail.com"&gt;guadapol.auto@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
    </item>
  </channel>
</rss>
