1. 程式人生 > >四、Hibernate完成增刪改查操作

四、Hibernate完成增刪改查操作

沒什麼可說的,直接上程式碼

// 測試插入一條資料
	@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();
	}
}