mybatis-spring 简单用法
MyBatis-Spring 模块
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>x.x.x</version>
</dependency>dataSource
推荐 com.alibaba.druid.pool.DruidDataSource
数据库事务
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</bean>SqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.foamvalue.*.entity" />
<property name="mapperLocations" value="classpath:/mybatis/*Mapper.xml" />
</bean>mapperLocations 从类路径下加载在 sample.config.mappers 包和它的子包中所有的 MyBatis 映射器 XML 文件。
一个数据映射器类
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="annotationClass" value="org.springframework.stereotype.Repository" />
<property name="basePackage" value="com.foamvalue.*.repository" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>要注意,所指定的映射器类必须是一个接口,而不是具体的实现类。
数据实现
@Service
public class FooServiceImpl implements FooService {
@Autowired
private UserMapper userMapper;
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public User doSomeBusinessStuff(String userId) {
return this.userMapper.getUser(userId);
}映射器 XML 文件
对应 getUser 的 sql 实现