MyBatis-Spring配置的讲解
MyBatis-Spring是MyBatis官方提供的基于Spring框架的集成方案,可以很方便地将MyBatis集成到Spring中,并且可以利用Spring框架的优势,如Spring的事务管理机制等。下面将详细讲解MyBatis-Spring的配置过程。
第一步:添加依赖
首先需要在项目的Maven配置文件中添加以下依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-version}</version>
</dependency>
上述三个依赖分别为MyBatis-Spring、Spring JDBC和Spring事务管理的依赖。
第二步:配置数据源
MyBatis-Spring需要使用Spring管理的数据源,因此需要先在Spring配置文件中配置数据源。这里以Druid数据源为例,配置如下:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="5" />
<property name="maxActive" value="20" />
<property name="minIdle" value="5" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
</bean>
其中,${jdbc.driverClassName}、${jdbc.url}、${jdbc.username}、${jdbc.password}等为在配置文件中已经定义好的数据库连接参数。
第三步:配置SqlSessionFactory
接下来需要配置SqlSessionFactory,这是MyBatis-Spring配置的关键一步。配置如下:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="mapperLocations" value="classpath*:mapper/**/*.xml" />
</bean>
其中,dataSource是之前配置的数据源,configLocation是MyBatis配置文件的位置,mapperLocations是MyBatis Mapper映射文件的位置。需要注意的是,这里的Mapper映射文件位置使用的是classpath:开头的通配符配置,这可以让Spring自动扫描classpath下所有满足规则的Mapper文件。
第四步:配置MapperScannerConfigurer
最后一步是配置MyBatis Mapper接口扫描器。使用MapperScannerConfigurer可以自动扫描项目中的所有Mapper接口,并将其注入到Spring容器中。配置如下:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao" />
</bean>
其中,basePackage为Mapper接口所在的包名。
示例1:定义Mapper接口
@Repository
public interface UserMapper {
User getById(Long id);
}
示例1中定义了一个UserMapper接口,通过MyBatis-Spring配置,该接口可以自动注入到Spring容器中,并且可以实现根据id查询User的功能。
示例2:调用Mapper接口
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public User getById(Long id) {
return userMapper.getById(id);
}
}
示例2中实现了一个UserService接口的实现类,该类通过@Autowired注解注入了之前定义的UserMapper接口,并实现了UserService接口中的getById方法。
至此,完成了MyBatis-Spring的配置,可以开始使用MyBatis-Spring进行DAO开发。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis-Spring配置的讲解 - Python技术站