在
配置数据源(DataSource):
配置SqlSessionFactory:
使用
import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; @Configuration @MapperScan(basePackages = "com.example.myapp.mapper") // 替换为你的Mapper接口所在的包名 public class MybatisConfig { @Autowired private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); // 设置MyBatis全局配置文件的位置(如果有的话) factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml")); // 设置Mapper XML文件的位置 factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); return factoryBean.getObject(); } @Bean public DataSourceTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource); } }
注入Mapper接口:
将
或者在配置类中使用
获取Mapper实例并执行方法:
在业务层
当调用Mapper接口的方法时,由于Spring已经为其生成了动态代理对象,所以实际上是在执行代理对象的方法。
代理方法内部会根据Mapper接口的方法签名和对应的XML映射文件或注解找到SQL语句。
执行SQL:
MyBatis会通过
SQL执行过程中,MyBatis会利用
结果映射与返回:
执行完SQL后,MyBatis会通过
事务管理:
在Spring Boot中,可以通过