四、Hibernate完成增删改查操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mChenys/article/details/84584948

没什么可说的,直接上代码

// 测试插入一条数据
	@Test
	public void testSave() {

		Session session = null;
		Transaction tr = null;

		try {
			// 获取会话
			session = HibernateUtils.getSession();
			// 开启事务
			tr = session.beginTransaction();

			// 添加数据
			Customer c = new Customer();
			c.setCust_name("小陈");
			session.save(c);// 或者使用 session.saveOrUpdate(c);

			// 提交事务
			tr.commit();
		} catch (Exception e) {
			// 回滚事务
			if (null != tr)
				tr.rollback();
			e.printStackTrace();
		} finally {
			// 释放资源
			if (null != session)
				session.close();
		}

	}

	// 测试获取一条数据
	@Test
	public void testGet() {
		// 获取会话
		Session session = HibernateUtils.getSession();

		// 根据id获取一条数据,参数2是id,Long类型
		Customer customer = session.get(Customer.class, 1L);
		System.out.println(customer);

		// 释放资源
		session.close();
	}

	// 测试删除一条数据
	@Test
	public void testDelete() {

		Session session = null;
		Transaction tr = null;

		try {
			// 获取会话
			session = HibernateUtils.getSession();
			// 开启事务
			tr = session.beginTransaction();

			// 删除一条数据,要先查询是否有这条数据,有才删除
			Customer customer = session.get(Customer.class, 1L);
			if (null != customer) {
				session.delete(customer);
			}

			// 提交事务
			tr.commit();

		} catch (Exception e) {
			// 回滚事务
			if (null != tr)
				tr.rollback();
			e.printStackTrace();
		} finally {
			// 释放资源
			if (null != session)
				session.close();
		}
	}

	// 测试更新一条数据
	@Test
	public void testUpdate() {

		Session session = null;
		Transaction tr = null;
		try {
			session = HibernateUtils.getSession();
			// 开启事务
			tr = session.beginTransaction();

			// 更新一条数据,要先查询该条数据
			Customer customer = session.get(Customer.class, 2L);
			if (null != customer) {
				customer.setCust_name("小黄");
				customer.setCust_level("2");
				session.update(customer);

			}

			// 提交事务
			tr.commit();

		} catch (Exception e) {
			// 回滚事务
			if (null != tr)
				tr.rollback();
			e.printStackTrace();
		} finally {
			// 释放资源
			if (null != session)
				session.close();
		}
	}

	// 测试获取一批数据
	@Test
	public void testGetList() {
		// 获取会话
		Session session = HibernateUtils.getSession();

		// 创建查询的接口,使用HQL语句,from + 类名
		Query query = session.createQuery("from Customer");

		List<Customer> list = query.list();
		for (Customer c : list) {
			System.out.println(c);
		}

		// 释放资源
		session.close();
	}

HibernateUtils

package blog.csdn.net.mchenys.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * Hibernate框架的工具类
 * @author mChenys
 *
 */
public class HibernateUtils {
	private static final SessionFactory FACTORY;
	private static final Configuration CONFIG;
	
	//保证仅初始化一次
	static {
		// 加载XML的配置文件
		CONFIG = new Configuration().configure();
		// 构造工厂
		FACTORY = CONFIG.buildSessionFactory();
	}
	
	/**
	 * 从工厂中获取Session对象
	 * @return
	 */
	public static Session getSession() {
		return FACTORY.openSession();
	}
}

猜你喜欢

转载自blog.csdn.net/mChenys/article/details/84584948