public void testSave1() {
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
User1 user = new User1();
user.setName("李四");數據庫
//主鍵採用數據庫序列自動生成策略
session.save(user);緩存
/*flush()和緩存相關。執行時會清除session緩存並向數據庫發送SQL語句並執行,但此時若是數據庫當前 存 在一個事務,數據庫會先將這些SQL語句緩存起來,那麼此時在數據庫中是沒法看到SQL語句執行結果的。除非執行commit提交了事務。只要沒有執行commit()方法,就能經過rollback()方法進行回滾*/
session.flush();
/*提交事務,默認狀況下commit操做會先執行flush清理緩存,因此不用顯示的調用flush,commit後數據是沒法 回滾的*/
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
} finally {
HibernateUtils.closeSession(session);
}
}
session