增刪改查
直接上代碼
事務回滾放在后面 分層 因為是Test測試 每次測試完畢會釋放內(nèi)存 就算出現(xiàn)異常 資源沒有關(guān)閉也不會影響 ,但是在正常項目中要關(guān)閉資源 保存操作即正確操作 ,出現(xiàn)異常進行回滾
get 與 load的區(qū)別
load 懶加載 結(jié)果是實體的代理類
get 查詢就加載 結(jié)果是實體類
/**
* 測試保存
*/
@Test
public void testSave() {
//事務問題
Customer customer = new Customer();
customer.setCustName("測試保存功能");
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.openSession();
tx = session.beginTransaction();
session.save(customer);
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
session.close();
}
}
/**
* 測試修改
*/
@Test
public void testUpdate() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 94L);
customer.setCustAddress("北京天安門");
customer.setCustPhone("15666667662");
customer.setCustLevel("超級測試級別");
session.update(customer);
tx.commit();
session.close();
}
/**
* 測試刪除 刪除必須傳一個實體
*/
@Test
public void testDelete() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 95L);
session.delete(customer);
tx.commit();
session.close();
}
/**
* 測試查詢
*/
@Test
public void testFindOne() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 94L);
System.out.println(customer.getCustName());
tx.commit();
session.close();
}
@Test
public void testFinaAll() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
SQLQuery sqlQuery = session.createSQLQuery("SELECT * FROM cst_customer");
List<Object[]> list = sqlQuery.list();
for(Object[] os : list){
System.out.println("數(shù)組內(nèi)容 " + os);
for (Object o : os) {
System.out.println("object 內(nèi)容" + o);
}
}
}