用spring boot整合mybatis需要添加什么依赖
时间: 2024-01-29 12:03:55 浏览: 123
要使用Spring Boot整合MyBatis,您需要添加以下依赖关系:
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
```
其中,`mybatis-spring-boot-starter`提供了Spring Boot集成MyBatis所需的所有依赖项,`h2`是一个内存型数据库,用于测试和开发。
请注意,以上版本号仅供参考,您可以在Maven仓库中查找最新版本。
相关问题
Spring boot整合Mybatis
Spring Boot整合MyBatis是一种常见的企业级应用开发模式,它简化了传统的MVC架构中配置数据库连接、数据映射以及事务管理的过程。以下是基本步骤:
1. 添加依赖:在你的`pom.xml`文件中添加Spring Boot Starter Data JPA和MyBatis的starter依赖。
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
</dependencies>
```
2. 配置数据库:在application.properties或application.yml中设置数据库的相关信息,如JDBC URL、用户名、密码等。
3. 数据库表和Mapper接口:创建对应的实体类(Entity)表示数据库表结构,并编写Mapper接口,声明SQL操作。
4. MyBatis配置:在src/main/resources/META-INF/mybatis/mybatis-config.xml或application.yml中配置SqlSessionFactoryBean。
5. 注解驱动:在实体类上使用`@Table`注解映射到数据库表,`@Mapper`注解指定Mapper接口。
6. 使用Repository:通过Spring Data JPA创建Repository接口,Spring会自动扫描并注入MyBatis的Mapper实例,提供CRUD操作。
例如:
```java
@Repository
public interface UserMapper extends BaseMapper<User> {}
```
spring boot整合mybatis代码
首先,需要在pom.xml文件中添加Mybatis和Mybatis-Spring的依赖:
```xml
<dependencies>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- Mybatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
```
然后,配置Mybatis的SqlSessionFactory和MapperScannerConfigurer:
```java
@Configuration
@MapperScan("com.example.demo.dao") // 扫描Mapper接口所在的包
public class MybatisConfig {
@Autowired
private DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.example.demo.entity"); // 设置实体类所在的包
return sessionFactory.getObject();
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
scannerConfigurer.setBasePackage("com.example.demo.dao"); // 扫描Mapper接口所在的包
return scannerConfigurer;
}
}
```
其中,`@MapperScan`注解用于指定扫描Mapper接口所在的包,`SqlSessionFactory`用于创建SqlSession,`MapperScannerConfigurer`用于自动扫描Mapper接口并注册到Spring容器中。
最后,编写Mapper接口和Mapper映射文件:
```java
public interface UserMapper {
User selectById(Long id);
}
```
```xml
<mapper namespace="com.example.demo.dao.UserMapper">
<select id="selectById" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
这里以查询用户信息为例,使用`@Select`注解或者Mapper映射文件都可以实现。完整的代码可以参考下面的示例:
```java
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable("id") Long id) {
return userMapper.selectById(id);
}
}
public interface UserMapper {
User selectById(Long id);
}
<mapper namespace="com.example.demo.dao.UserMapper">
<select id="selectById" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
阅读全文