在实际的项目开发中,如果只用hibernate,经常会遇到很多实现复杂的sql和map方法,这时候如果用ibatis却很简单,所以我们需要在一个项目中hibernate和ibatis并存,配置方法如下就可以实现
实现原理: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>