Hibernate到底好在哪里呢

在用过Hibernate之后,我就想,它只是对JDBC的一个简单的包装而已,在一般的程序开发中,到底它优越在哪里呢????
现在的JDBC2。0/3。0的功能也有了很大的改善,比如说批量处理方面、事务处理方面都做了改善了。而HIBERNATE的事务处理也不怎么样,效率上也不见得比直接用JDBC好到哪去。
如果使用Hibernate进行事务管理,可以在Hibernate的配置文件中配置事务管理器和事务切面。 下面是Hibernate的配置文件示例: ``` <hibernate-configuration> <session-factory> <!-- 配置数据源 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">password</property> <!-- 配置事务管理器 --> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property> <!-- 配置事务切面 --> <mapping class="com.example.model.User"/> <mapping class="com.example.model.Book"/> <mapping class="com.example.model.Order"/> <mapping class="com.example.model.Payment"/> <mapping resource="com/example/model/User.hbm.xml"/> <mapping resource="com/example/model/Book.hbm.xml"/> <mapping resource="com/example/model/Order.hbm.xml"/> <mapping resource="com/example/model/Payment.hbm.xml"/> <property name="hibernate.current_session_context_class">thread</property> </session-factory> </hibernate-configuration> ``` 在上述配置文件中,首先配置数据源,然后配置事务管理器,使用Hibernate提供的JDBCTransactionFactory类实现事务管理,同时也可以配置JBossTransactionManagerLookup类来管理事务。 最后配置事务切面,将需要进行事务管理的实体类和映射文件都添加到映射配置中,通过配置hibernate.current_session_context_class属性为thread,表示使用当前线程来管理Session对象,从而实现事务管理。 需要注意的是,以上示例中的事务切面是通过Hibernate的底层API来实现的,如果使用Spring等其他框架,配置事务切面的方式可能会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值