实际的项目开发中,如果只用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>