/** * *仿spring中的HibernateCallback对Session的封装。 * **/ public class Crud { /** * *抽取出一个模板把对session的操作,事物的开启,关闭都一起封装。 * **/ public void persisten(Callback callback) { Session session = null; try { session = SessionFactory.buildSessionFactotry.openSession(); session.beginTransaction(); Callback.doCallback(session);//拿到传过来的session session.getTransaction().commit();//执行 } catch (Exception e) { session.getTransaction().rollback(); throw e; } } } public interface Callback { public void doInCallback(Session session) throw Exception; } public class Client { public static void main(String[] args) { Crud crud = new Crud(); crud.persisten(new Callback{ //创建一个匿名内部类,去调用上面的Callback接口。然后自己实现。 public void doInCallback(Session session) throw Exception { User user = new User(); user.setName("1e+10"); session.save(user); //当这里一提交,就会传到session会传到doInCallback } }); } } 我只是用记事本写了一些,理解下hibernateCallback的机制。