`
ccx20060810501
  • 浏览: 32421 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

一、使用Hibernate简化CRUD操作(Very Simple!!!)

阅读更多

下面的代码可以作为模板使用:

public class HibernateUtil {
	private static SessionFactory sessionFactory = null;

	private HibernateUtil() {
	};

	static {
		Configuration cfg = new Configuration();
		cfg.configure();
		sessionFactory = cfg.buildSessionFactory();
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public static Session getSession() {
		return sessionFactory.openSession();
	}
	//增加
	public static void add(Object entity) {
		Session session = null;
		Transaction transaction = null;
		try {
			session = HibernateUtil.getSession();
			transaction = session.beginTransaction();
			session.save(entity);
			transaction.commit();
		} finally {
			if (session != null)
				session.close();
		}
	}
	//更新
	public static void update(Object entity) {
		Session session = null;
		Transaction transaction = null;
		try {
			session = HibernateUtil.getSession();
			transaction = session.beginTransaction();
			session.update(entity);
			transaction.commit();
		} finally {
			if (session != null)
				session.close();
		}
	}
	//删除
	public static void delete(Object entity) {
		Session session = null;
		Transaction transaction = null;
		try {
			session = HibernateUtil.getSession();
			transaction = session.beginTransaction();
			session.delete(entity);
			transaction.commit();
		} finally {
			if (session != null)
				session.close();
		}
	}
	//查询,当然更复杂的查询需要借助Query,我在博客你会继续介绍
	public static Object get(Class clazz,Serializable id) {
		Session session = null;
		try {
			session = HibernateUtil.getSession();
			Object obj=session.get(clazz, id);
			return obj;
		} finally {
			if (session != null)
				session.close();
		}
	}
}

说明:session.load()是懒加载的,也就是如果通过load查询一个数据,只有你第一次真正使用该数据的时候它才会真的访问数据库。在这里这么用,会有问题。

 

 

 

 

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics