Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装
Connection conn = ...; <--- session = sf.openSession();;
conn.setAutoCommit(false); <--- tx = session.beginTransactioin();;
... <--- ...
conn.commit(); <--- tx.commit();; (对应左边的两句);
conn.setAutoCommit(true);
conn.close(); <--- session.close();;
看明白了吧,Hibernate的JDBCTransaction根本就是conn.commit而已,根本毫无神秘可言,只不过在Hibernate中,Session打开的时候,就会自动conn.setAutoCommit(false),不像一般的JDBC,默认都是true,所以你最后不写commit也没有关系,由于Hibernate已经把AutoCommit给关掉了,所以用Hibernate的时候,你在程序中不写Transaction的话,数据库根本就没有反应
本文详细解析了Hibernate作为JDBC的轻量级对象封装,如何通过Session管理事务,避免了传统JDBC中手动调用commit的繁琐操作。重点阐述了在Hibernate中如何开启事务、提交事务以及关闭连接的过程,简化了数据库操作的复杂性。
601

被折叠的 条评论
为什么被折叠?



