下面的代码可以作为模板使用:
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查询一个数据,只有你第一次真正使用该数据的时候它才会真的访问数据库。在这里这么用,会有问题。
分享到:
评论