HibernateUtil

package com.zhi.test.util;

import java.util.HashMap;
import java.util.Map;

import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Environment;

import com.zhi.test.entity.PersonEntity;

public class HibernateUtil {
    private static StandardServiceRegistry serviceRegistry;
    private static SessionFactory sessionFactory;

    public static SessionFactory getSessionFactory() {
        if (sessionFactory == null) {
            System.setProperty("org.jboss.logging.provider", "log4j2");

            Map<String, String> settings = new HashMap<>();
            settings.put(Environment.DRIVER, "com.mysql.jdbc.Driver");
            settings.put(Environment.URL,
                    "jdbc:mysql://192.168.17.128:3306/zhi_study?useUnicode=true&characterEncoding=utf-8&useSSL=false");
            settings.put(Environment.USER, "root");
            settings.put(Environment.PASS, "abc123");
            settings.put(Environment.HBM2DDL_AUTO, "update");

            StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder();
            standardServiceRegistryBuilder.applySettings(settings);
            serviceRegistry = standardServiceRegistryBuilder.build();

            MetadataSources sources = new MetadataSources(serviceRegistry).addAnnotatedClass(PersonEntity.class);
            Metadata metadata = sources.getMetadataBuilder().build();
            sessionFactory = metadata.getSessionFactoryBuilder().build();
        }
        return sessionFactory;
    }

    public static void shutdown() {
        if (serviceRegistry != null) {
            StandardServiceRegistryBuilder.destroy(serviceRegistry);
        }
    }
}
原文地址:https://www.cnblogs.com/zhi-leaf/p/8777249.html