mybatis+spring
1. 自动扫描annotation的配置
<!-- sqlSessionFactory is a auto boxing name if only one data source exists -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="mapperLocations" value="classpath:mappers/**/*.xml" />
</bean>
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 只能在Mapper上使用@Repository annonation,移除此行则不会限制住annonation名字-->
<property name="annotationClass" value="org.springframework.stereotype.Repository"/>
<property name="basePackage" value="com.lee.mapper" />
<!-- need below line when there're more than one data sources -->
<!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> -->
</bean>
Mapper类如下
@Repository
public interface MyMapper {
public void selectAll();
}
2. 经典配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
</bean>
<bean id="myMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.lee.MyMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.lee.mapper" />
</bean>
Mapper类如下
public interface MyMapper {public void selectAll();
}
3. 事物配置
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="myDataSource"/>
</bean>