import
com.gfg.hibernate.batch.entity.Product;
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;
public
class
HibernateUtil {
private
static
StandardServiceRegistry registry;
private
static
SessionFactory sessionFactory;
public
static
SessionFactory getSessionFactory()
{
if
(sessionFactory ==
null
) {
try
{
StandardServiceRegistryBuilder
registryBuilder
=
new
StandardServiceRegistryBuilder();
Map<String, Object> settings
=
new
HashMap<>();
settings.put(Environment.DRIVER,
"com.mysql.jdbc.Driver"
);
settings.put(
Environment.URL,
settings.put(Environment.USER,
"root"
);
settings.put(Environment.PASS,
"admin"
);
settings.put(Environment.HBM2DDL_AUTO,
"update"
);
settings.put(
Environment.STATEMENT_BATCH_SIZE,
50
);
registryBuilder.applySettings(settings);
registry = registryBuilder.build();
MetadataSources sources
=
new
MetadataSources(registry);
sources.addAnnotatedClass(Product.
class
);
Metadata metadata
= sources.getMetadataBuilder().build();
sessionFactory
= metadata.getSessionFactoryBuilder()
.build();
}
catch
(Exception e) {
if
(registry !=
null
) {
StandardServiceRegistryBuilder.destroy(
registry);
}
e.printStackTrace();
}
}
return
sessionFactory;
}
public
static
void
shutdown()
{
if
(registry !=
null
) {
StandardServiceRegistryBuilder.destroy(
registry);
}
}
}