package cn.itcast.utils; import java.sql.Connection; import java.sql.SQLException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.jdbc.Work; public class HibernateUtils { private static Configuration cfg; private static SessionFactory sessionFactory; private static ThreadLocal<Session> threadLocal; static { cfg = new Configuration(); // a loader cfg.configure(); // load the default location core configuration file sessionFactory = cfg.buildSessionFactory(); // a session factory threadLocal = new ThreadLocal<Session> (); } public static Session getSession() { Session session=threadLocal.get(); if(session==null) { cfg.configure(); // Load default core configuration file session = sessionFactory.openSession(); // Create session threadLocal.set(session); session=threadLocal.get(); } return session; } public static void main(String[] args) { Session session = getSession(); session.doWork(new Work() { @Override public void execute(Connection con) throws SQLException { // TODO Auto-generated method stub System.out.println(con); }}); } }