DEV Community

Cover image for hibernate 6 crud operations
realNameHidden
realNameHidden

Posted on • Edited on

7 1 1 1 1

hibernate 6 crud operations

For More explanation watch video

For More information watch below video

step :
create maven project

Image description

Image description

Image description

Image description

step 2: edit pom.xml

add maven compiler plugin

add hibernate-core, lombok, mysql-connector-java maven dependencies

pom.xml



<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>Hibernate6CRUD</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>Hibernate6CRUD</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.9</maven.compiler.source>
        <maven.compiler.target>1.9</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-core -->
        <dependency>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>6.2.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.32</version>
        </dependency>

    </dependencies>
</project>



Enter fullscreen mode Exit fullscreen mode

step 3: Directory Structure

step 4 : Create entity
Student.java



package com.test.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "sttab")
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer sid;

    private String sname;

    private String sadd;
}



Enter fullscreen mode Exit fullscreen mode

step5 : HibernateUtil.java

Image description



package com.test.util;

import java.util.Properties;

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

import com.test.entity.Student;

public class HibernateUtil {
    static SessionFactory factory = null;
    static {
        Configuration cfg = new Configuration();
        Properties props = new Properties();
        props.put(Environment.URL, "jdbc:mysql://localhost:3306/new");
        props.put(Environment.USER, "root");
        props.put(Environment.PASS, "root");
        props.put(Environment.SHOW_SQL, true);
        props.put(Environment.FORMAT_SQL, true);
        props.put(Environment.HBM2DDL_AUTO, "update");

        cfg.setProperties(props);
        cfg.addAnnotatedClass(Student.class);
        factory = cfg.buildSessionFactory();

    }
    public static SessionFactory getSessionFactory() {
        return factory;
    }

    public static Session getSession() {
        return factory.openSession();
    }
}



Enter fullscreen mode Exit fullscreen mode

step 6: Insert.java



package com.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.test.entity.Student;
import com.test.util.HibernateUtil;

public class Insert {
    public static void main(String[] args) {

        SessionFactory factory = HibernateUtil.getSessionFactory();
        Session ses = HibernateUtil.getSession();
        try(factory;ses){
            //begin the transaction
            ses.beginTransaction();

            //create student objs
            Student st1 = new Student("sam","mumbai");
            Student st2 = new Student("jhon","pune");
            Student st3 = new Student("brock","nagpur");

            //save
            ses.persist(st1);
            ses.persist(st2);
            ses.persist(st3);

            //commit transaction
            ses.getTransaction().commit();

        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}



Enter fullscreen mode Exit fullscreen mode

exceute Insert.java

you will find output in console as below

Image description

table will be created in mysql new schema as below

Image description

step 7 : Retrive.java

to retrive student by id



package com.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.test.entity.Student;
import com.test.util.HibernateUtil;

public class Retrive {
    public static void main(String[] args) {
        SessionFactory factory = HibernateUtil.getSessionFactory();
        Session ses = HibernateUtil.getSession();
        try(factory;ses){
            Student st = ses.get(Student.class, 1);
            System.out.println("emp with id 1 info "+st);
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}



Enter fullscreen mode Exit fullscreen mode

Image description

step 8 : RetriveAll.java



package com.test;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.test.entity.Student;
import com.test.util.HibernateUtil;

public class RetriveAll {
    public static void main(String[] args) {
        SessionFactory factory = HibernateUtil.getSessionFactory();
        Session ses = HibernateUtil.getSession();
        try(factory;ses){
            //select * from sttab
            List<Student> list= ses.createQuery("from Student",Student.class).getResultList();
            list.forEach(System.out::println);
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}



Enter fullscreen mode Exit fullscreen mode

console output

Image description

step 9 : Update.java

updating one record



package com.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.test.entity.Student;
import com.test.util.HibernateUtil;

public class Update {
    public static void main(String[] args) {
        SessionFactory factory = HibernateUtil.getSessionFactory();
        Session ses = HibernateUtil.getSession();
        try(factory;ses){
            //begin treansaction
            ses.beginTransaction();

            Student st = ses.get(Student.class, 1);
            st.setSadd("Delhi");
            ses.getTransaction().commit();
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}



Enter fullscreen mode Exit fullscreen mode

before update

Image description

after update

Image description

console output

Image description

Step 10 : Delete.java



package com.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.test.entity.Student;
import com.test.util.HibernateUtil;

public class Delete {
    public static void main(String[] args) {
        SessionFactory factory = HibernateUtil.getSessionFactory();
        Session ses = HibernateUtil.getSession();
        try(factory;ses){
            //begin transaction
            ses.beginTransaction();

            //get the student
            Student st = ses.get(Student.class, 3);

            //delete student
            ses.remove(st);

            //commit transaction
            ses.getTransaction().commit();
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}



Enter fullscreen mode Exit fullscreen mode

Image description

table before delete

Image description

after deletion

Image description

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (1)

Collapse
 
pbkvijay_kulkarni_d0a94ca profile image
PBKVijay Kulkarni

For Hibernate ver 6 I have the same program done. it says that Environment.DRIVER is deprecated. And "The JPA-standard setting JAKARTA_JDBC_DRIVER is now preferred."

Can you pl throw some light on this.

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

AWS GenAI Live!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️