美文网首页
java orm hibernate demo note

java orm hibernate demo note

作者: robertzhai | 来源:发表于2023-01-12 07:38 被阅读0次

运行效果

image.png

目录结构

image.png
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── robert
    │   │           ├── controller
    │   │           │   └── App.java
    │   │           ├── entity
    │   │           │   └── User.java
    │   │           └── utils
    │   │               └── HibernateUtil.java
    │   └── resources
    │       ├── hibernate.cfg.xml
    │       └── user.hbm.xml
    └── test
        └── java
            └── com
                └── robert
                    └── controller
                        └── AppTest.java

新建一个 maven-archetype-quickstart project

pom.xml

<dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>4.3.5.Final</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
    </dependency>

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/java</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">update </property>
        <mapping resource="user.hbm.xml" />
    </session-factory>
</hibernate-configuration>

sql

CREATE TABLE USER (  
   USER_ID INT (5) NOT NULL,  
   USERNAME VARCHAR (20) NOT NULL,  
   CREATED_BY VARCHAR (20) NOT NULL,  
   CREATED_DATE DATE NOT NULL,  
   PRIMARY KEY ( USER_ID ) 
);

user.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.robert.entity.User" table="USER">
        <id name="userId" type="int" column="USER_ID">
            <generator class="assigned"/>
        </id>
        <property name="username">
            <column name="USERNAME"/>
        </property>
        <property name="createdBy">
            <column name="CREATED_BY"/>
        </property>
        <property name="createdDate" type="date">
            <column name="CREATED_DATE"/>
        </property>
    </class>

</hibernate-mapping>

User.java

package com.robert.entity;

import java.util.Date;

public class User {
    private int userId;
    private String username;
    private String createdBy;
    private Date createdDate;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

}

HibernateUtil.java

package com.robert.utils;

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

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        // Close caches and connection pools
        getSessionFactory().close();
    }

}

App.java

package com.robert.controller;

import com.robert.entity.User;
import com.robert.utils.HibernateUtil;
import org.hibernate.Session;

import java.util.Date;


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

        System.out.println( "start hibernate" );
        Session session = HibernateUtil.getSessionFactory().openSession();

        session.beginTransaction();
        User user = new User();

        user.setUserId(4);
        user.setUsername("robert");
        user.setCreatedBy("china");
        user.setCreatedDate(new Date());

        session.save(user);
        session.getTransaction().commit();
        System.out.println( "end hibernate" );

    }
}

Diagram

image.png image.png image.png

Advantages of Hibernate framework:

image.png

参考

相关文章

网友评论

      本文标题:java orm hibernate demo note

      本文链接:https://www.haomeiwen.com/subject/mcgicdtx.html