springboot整合mybatis
1、添加 Maven 依赖
<dependencies>
<!-- Spring Boot MyBatis Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
2、配置数据源和 MyBatis
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&&allowMultiQueries=true
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
type-aliases-package: com.example.demo.model
mapper-locations: classpath:mapper/*.xml
3、创建实体类和 Mapper 接口
@Mapper
public interface UserMapper {
List<User> findAll();
}
4、创建 Mapper XML 文件
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findAll" resultType="com.example.demo.model.User">
SELECT * FROM users
</select>
</mapper>
5、配置全局扫描
与3中的@Mapper 二选一
@MapperScan(“com.example.demo.mapper”)
扫描不生效 配置config
@Configuration
@MapperScan("com.user.dao") // 扫描DAO
public class MybatisConfig {
@Resource
private DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage(" com.user.model"); // 扫描Model
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sessionFactory.setMapperLocations(resolver.getResources("classpath*:mappers/*.xml")); // 扫描映射文件
return sessionFactory.getObject();
}
}