實際的項目開發中,如果只用hibernate,經常會遇到很多實現複雜的sql和map方法,這時候如果用ibatis卻很簡單,所以我們需要在一個項目中hibernate和ibatis並存,配置方法如下就可以實現
來自:javaresource.org
實現原理:Hibernate和ibatis在同一個webapp中混合使用在spring中的配置方法
applicationContext-hibatis.xml文件的例子如下:
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"><ref bean="dataSource"/></property> <property name="mappingResources"> <list> <value>org/javaresource/model/Role.hbm.xml</value> <value>org/javaresource/model/User.hbm.xml</value> <value>org/javaresource/model/UserCookie.hbm.xml</value> <value>org/javaresource/model/UserRole.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">@HIBERNATE-DIALECT@</prop> </props> </property></bean>
<!-- SqlMap setup for iBATIS Database Layer -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:/org/javaresource/persistence/ibatis/sql-map-config.xml</value>
</property>
</bean>
<!-- Transaction manager for a single JDBC DataSource -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
<!-- LookupDAO: iBatis implementation -->
<bean id="lookupDAO" class="org.javaresource.persistence.ibatis.LookupDAOiBatis">
<property name="dataSource"><ref bean="dataSource"/></property>
<property name="sqlMapClient"><ref local="sqlMapClient"/></property>
</bean>
<!-- UserDAO: Hibernate implementation -->
<bean id="userDAO" class="org.javaresource.persistence.hibernate.UserDAOHibernate">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>