com.leaf.cashier.Utility.HibernateUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.leaf.cashier.Utility.HibernateUtil.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.leaf.cashier.Utility;

import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
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;

/**
 *
 * @author Rusiru
 */
public class HibernateUtil {

    private static StandardServiceRegistry registry;
    private static SessionFactory sessionFactory;

    public static SessionFactory getSessionFactory() {
        if (sessionFactory == null) {
            try {
                // Properties properties = new Properties();
                // properties.load(new FileInputStream(CommonConstant.HIBERNATE_PROPERTIES_FILE_PATH));
                registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();

                //                Map<String, String> settings = new HashMap<>();
                //                settings.put(Environment.DRIVER, "com.mysql.jdbc.Driver");
                //                settings.put(Environment.URL, "jdbc:mysql://127.0.0.1:3306/cashier");
                //                settings.put(Environment.USER, "root");
                //                settings.put(Environment.PASS, "");
                //                settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQLDialect");
                //                settings.put(Environment.POOL_SIZE, "1");
                //                settings.put(Environment.FORMAT_SQL, "true");
                //                settings.put(Environment.SHOW_SQL, "true");
                //
                //                registryBuilder.applySettings(settings);
                //                registry = registryBuilder.build();
                MetadataSources sources = new MetadataSources(registry);
                Metadata metadata = sources.getMetadataBuilder().build();
                sessionFactory = metadata.getSessionFactoryBuilder().build();

            } catch (Exception e) {
                e.printStackTrace();
                if (registry != null) {
                    StandardServiceRegistryBuilder.destroy(registry);
                }
            }

        }
        return sessionFactory;
    }

    public static void shutdown() {
        if (registry != null) {
            StandardServiceRegistryBuilder.destroy(registry);
        }
    }
}