HibernateSessionFactoryUtil类和封装了(增删改查)方法的HibernateTest类

HibernateSessionFactoryUtil类提供了一个getSessionFactory()静态方法。

通过调用此方法可以返回一个SessionFactory对象。

在其他地方创建Session对象的时候:

只需要这样一句代码:

Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();

这样既可获得Session对象。


HibernateTest类封装了对数据操作更删改查的基本方法。

根据不同的业务逻辑环境代码作出相应的变更即可使用。


HibernateSessionFactoryUtil.java

package com.xiami.util;

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactoryUtil {
	private static final SessionFactory sessionFactory;
	static {
		try {
			sessionFactory = new Configuration().configure().buildSessionFactory();
		} catch (Throwable ex) {
			
			throw new ExceptionInInitializerError(ex);
		}
	}

	private HibernateSessionFactoryUtil() {
		
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}



HibernateTest.java

package com.xiami.examples;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.xiami.util.HibernateSessionFactoryUtil;

public class HibernateTest {
	public static void main(String args[]){
		HibernateTest test = new HibernateTest();
		
		//增加一条记录]
//		Guestbook gb = new Guestbook();
//		gb.setContent("我是内容");
//		gb.setCreatedTime("2012-03-17");
//		gb.setEmail("kalision@foxmail.com");
//		gb.setName("mr.zhou");
//		gb.setPhone("12345678912");
//		gb.setTitle("我的信息");
//		test.addGuestbook(gb);
		
		//删除一条记录
//		test.deleteGuestbook(7);
		
		//修改更新一条记录
//		Guestbook gb = test.getGuestbook(1);
//		gb.setName("admin");
//		test.updateGuest(gb);

		//得到一条记录
		Guestbook gb = test.getGuestbook(1);
		System.out.println(gb.getName());
	}
	
	/*
	 * 增加一条记录的方法
	 */
	public void addGuestbook(Guestbook gb){
		Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
		Transaction tx = session.beginTransaction();
		session.save(gb);
		tx.commit();
	}
	
	/*
	 * 删除一条记录的方法
	 */
	public void deleteGuestbook(Integer id){
		Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
		Transaction tx = session.beginTransaction();
		
		//第一种方法.先得到对应id的记录的对象,然后在删除此对象对应的记录。
//		Guestbook gb = (Guestbook) session.get(Guestbook.class, new Integer(id));
//		tx.commit();
//		session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
//		tx = session.beginTransaction();
//		session.delete(gb);
//		tx.commit();
		
		//第二种方法。直接调用本类中的getGuestbook()方法来得到要对应id的对象。直接就删除了。
		Guestbook gb = getGuestbook(id);
		session.delete(gb);
		tx.commit();
	}
	
	/*
	 * 修改一条记录的方法(更新)
	 */
	public void updateGuest(Guestbook gb){
		Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
		Transaction tx = session.beginTransaction();
		session.update(gb);
		tx.commit();
	}
	
	/*
	 * 查询一条记录的方法
	 */
	public Guestbook getGuestbook(Integer id){
		Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
		Transaction tx = session.beginTransaction();
		Guestbook gb = new Guestbook();
		gb = (Guestbook) session.get(Guestbook.class, new Integer(id));
		return gb;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值