四、Hibernate完成增刪改查操作
阿新 • • 發佈:2018-12-03
沒什麼可說的,直接上程式碼
// 測試插入一條資料
@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();
}
}