`
serenest
  • 浏览: 16905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate 学习笔记

    博客分类:
  • Java
阅读更多
domain object -> mapping -> database

Domain Object:

1.有默认的无参构造方法(必须)
2.有id字段,与主键对应(可选)
3.非final的,对懒加载有影响(可选)

Hibernate工具类:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
	private static SessionFactory sessionFactory;
	private HibernateUtil() {}
	
	static {
		Configuration cfg = new Configuration();
		cfg.configure("hibernate.cfg.xml");  //find the hibernate config file in classpath
		sessionFactory = cfg.buildSessionFactory();
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	
	public static Session getSession() {
		return sessionFactory.openSession();
	}

}


示例代码:
	public void addUser(User user) {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateUtil.getSession();
			tx = session.beginTransaction();
			session.save(user);
			tx.commit();
		} catch (HibernateException e) {
			if(tx != null){
				tx.rollback();
			}
			throw e;
			//the catch clause can be omitted. if throws an exception, the "commit" code can't be reached, therefore,the transmission will be roll back.
		} finally {
			if(session != null)
			session.close();
		}
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics