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);
}
}