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