Create Table Using Hibernate

Follow below steps : Step : 1 Create Util package in your project directory. Step : 2 Create Listener Class -

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.Logger;
import com.util.HibernateUtil;
/**
* Application Lifecycle Listener implementation class HibernateListener
*
*/
public class HibernateListener implements ServletContextListener {
 private static Logger log = Logger.getLogger(HibernateListener.class);

 public void contextInitialized(ServletContextEvent event) {
  log.info("HibernateListener - contextInitialized");
  HibernateUtil.getSessionFactory();
  // Just call the static initializer of that class
 }

 public void contextDestroyed(ServletContextEvent event) {
  HibernateUtil.getSessionFactory().close(); // Free all resources
 }
}
Step : 3 Create HibernateUtil class

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
 private static SessionFactory sessionFactory;
 private static Logger log = Logger.getLogger(HibernateUtil.class);

 static {
  try {
   Configuration configuration = new Configuration().configure();
   log.info("Hibernate Configuration loaded");
   StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
    .applySettings(configuration.getProperties());
   log.info("Hibernate serviceRegistry created");
   sessionFactory = configuration.buildSessionFactory(builder.build());
  } catch (HibernateException he) {
   log.error("Initial SessionFactory creation failed." + he);
   throw new ExceptionInInitializerError(he);
  }
 }

 public static SessionFactory getSessionFactory() {
  return sessionFactory;
 }
}
That's it so when your application starts so at the time of context initialization it will create your table whatever mentioned in hibernate.cfg.xml file.

Comments