Quick Contact

    Hibernate

    JPA 2 with Hibernate 5 Bootstrapping Example

    The Java Persistence API (a.k.a. JPA) is a Java specification for managing, persisting, and accessing data between objects and relational databases. Hibernate is an ORM (Object Relational Mapping) tool that implements JPA specification.

    Add jar Dependencies to 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>
    < parent>
    < groupId>net.ducatindia.hibernate< /groupId>
    < artifactId>hibernate-tutorial< /artifactId>
    < version>0.0.1-SNAPSHOT< /version>
    < /parent>
    < artifactId>hibernate-jpa-config-example< /artifactId>
    < properties>
    < project.build.sourceEncoding>UTF-8< /project.build.sourceEncoding>
    < /properties>
    < dependencies>
    < !-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    < dependency>
    < groupId>mysql< /groupId>
    < artifactId>mysql-connector-java< /artifactId>
    < version>8.0.13< /version>
    < /dependency>
    < !-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
    < dependency>
    < groupId>org.hibernate< /groupId>
    < artifactId>hibernate-core< /artifactId>
    < version>5.3.7.Final< /version>
    < /dependency>
    < /dependencies>
    < build>
    < sourceDirectory>src/main/java< /sourceDirectory>
    < plugins>
    < plugin>
    < artifactId>maven-compiler-plugin< /artifactId>
    < version>3.5.1< /version>
    < configuration>
    < source>1.8< /source>
    < target>1.8< /target>
    < /configuration>
    < /plugin>
    < /plugins>
    < /build>
    < /project>
    

    Creating the JPA Entity Class(Persistent class)

    A simple Persistent class should follow some rules:

    • A no-arg constructor:

      It is recommended that you have a default constructor at least package visibility so that hibernate can create the instance of the Persistent class by newInstance() method.

    • Provide an identifier property:

      It is better to assign an attribute as id. This attribute behaves as a primary key in a database.

    • Declare getter and setter methods:

      The Hibernate recognizes the method by getter and setter method names by default.

    • Prefer non-final class:

      Hibernate uses the concept of proxies, that depends on the persistent class. The application programmer will not be able to use proxies for lazy association fetching.

    Create a Student entity class under net.javaguides.hibernate.entity package as follows.

    packagenet.ducatindia.hibernate.entity;
    
    importjavax.persistence.Column;
    importjavax.persistence.Entity;
    importjavax.persistence.GeneratedValue;
    importjavax.persistence.GenerationType;
    importjavax.persistence.Id;
    importjavax.persistence.Table;
    
    @Entity
    @Table(name="student")
    publicclassStudent {
    
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id")
    privateint id;
    
    @Column(name="first_name")
    privateStringfirstName;
    
    @Column(name="last_name")
    privateStringlastName;
    
    @Column(name="email")
    privateString email;
    
    publicStudent() {
    
        }
    
    publicStudent(StringfirstName, StringlastName, Stringemail) {
    this.firstName=firstName;
    this.lastName=lastName;
    this.email= email;
        }
    
    publicintgetId() {
    return id;
        }
    
    publicvoidsetId(intid) {
    this.id = id;
        }
    
    publicStringgetFirstName() {
    returnfirstName;
        }
    
    publicvoidsetFirstName(StringfirstName) {
    this.firstName=firstName;
        }
    
    publicStringgetLastName() {
    returnlastName;
        }
    
    publicvoidsetLastName(StringlastName) {
    this.lastName=lastName;
        }
    
    publicStringgetEmail() {
    return email;
        }
    
    publicvoidsetEmail(Stringemail) {
    this.email= email;
        }
    
    @Override
    publicStringtoString() {
    return"Student [id="+ id +", firstName="+firstName+", lastName="+lastName+", email="+ email +"]";
        }
    }
    

    Create a JPA configuration file

    Let’s create an XML file named as persistence.xml under src/main/java/META-INF folder and write the following code in it.

    < persistence
    xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
                 http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">
    < persistence-unitname="PERSISTENCE">
    < description> Hibernate JPA Configuration Example< /description>
    < provider>org.hibernate.jpa.HibernatePersistenceProvider< /provider>
    < class>net.ducatindia.hibernate.entity.Student< /class>
    < properties>
    < propertyname="javax.persistence.jdbc.driver"
    value="com.mysql.cj.jdbc.Driver" />
    < propertyname="javax.persistence.jdbc.url"
    value="jdbc:mysql://localhost:3306/hibernate_db" />
    < propertyname="javax.persistence.jdbc.user"value="root" />
    < propertyname="javax.persistence.jdbc.password"
    value="root" />
    < propertyname="hibernate.show_sql"value="true" />
    < propertyname="hibernate.hbm2ddl.auto"value="create-drop" />
    < /properties>
    < /persistence-unit>
    < /persistence>
    

    Create a JPA helper class

    Let’s create a helper class to bootstrap a JPA EntityManagerFactory.

    packagenet.ducatindia.hibernate.util;
    
    importjavax.persistence.EntityManagerFactory;
    importjavax.persistence.Persistence;
    
    publicclassJPAUtil {
    privatestaticfinalStringPERSISTENCE_UNIT_NAME="PERSISTENCE";
    privatestaticEntityManagerFactory factory;
    
    publicstaticEntityManagerFactorygetEntityManagerFactory() {
    if (factory ==null) {
    factory=Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
            }
    return factory;
        }
    
    publicstaticvoidshutdown() {
    if (factory !=null) {
    factory.close();
            }
        }
    }
    

    Create a main class and run an application

    Here is the main class to persist student object using the EntityManager#persist method.

    MainApp.java

    packagenet.ducatindia.hibernate;
    
    importjavax.persistence.EntityManager;
    
    importnet.ducatindia.hibernate.entity.Student;
    importnet.ducatindia.hibernate.util.JPAUtil;
    
    publicclassApp {
    publicstaticvoidmain(String[] args) {
    
    EntityManagerentityManager=JPAUtil.getEntityManagerFactory().createEntityManager();
    entityManager.getTransaction().begin();
    
    Studentstudent=newStudent("rajan", "sharma", "rajansharma@ducatindia.com");
    entityManager.persist(student);
    entityManager.getTransaction().commit();
    entityManager.close();
    
    JPAUtil.shutdown();
        }
    
    }
    

    Apply now for Advanced Java Training Course

    Copyright 1999- Ducat Creative, All rights reserved.

    Anda bisa mendapatkan server slot online resmi dan terpercaya tentu saja di sini. Sebagai salah satu provider yang menyediakan banyak pilihan permainan.