domain object -> mapping -> database
Domain Object:
1.有默认的无参构造方法(必须)
2.有id字段,与主键对应(可选)
3.非final的,对懒加载有影响(可选)
Hibernate工具类:
示例代码:
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();
}
}