持久化对象的增、删、改操作

package cn.itcast.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public final class HibernateUtil {
	
	private static SessionFactory sessionFactory;
	
	/**
	 * 私有的构造方法(不希望被实例化)
	 */
	private HibernateUtil(){}
	
	static{
		// 实例化Configuration,加载Hibernate默认的配置文件
		//如果hibernate配置文件不是默认的文件名,则需要再configure("filename");
		Configuration config=new Configuration().configure();
		// 创建SessionFactory对象
		sessionFactory=config.buildSessionFactory();
	}
	
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	
	public static Session getSession(){
		return sessionFactory.openSession();
	}
	
	/**
	 * 根据主键查找对象
	 * @param objClass
	 * @param id
	 * @return
	 */
	public static Object getById(Class objClass,int id){
		Object obj=null;
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			obj=session.get(objClass, new Integer(id));
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
		return obj;
	}
	
	/**
	 * 保存对象到数据库中
	 * @param obj
	 */
	public static void add(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.save(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * 在数据库中更新对象
	 * @param obj
	 */
	public static void update(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.update(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * 在数据库中删除对象
	 * @param obj
	 */
	public static void delete(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.delete(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * Session对象关闭方法
	 * @param session
	 */
	public static void sessionClose(Session session){
		if(session!=null){
			session.close();
		}
	}
}

 

 

这是一个Hibernate的工具类,可能功能还不够完善,以后还有待改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值