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); } } }