springboot 集成mybatis 项目举例
时间: 2024-11-20 21:27:17 浏览: 3
Spring Boot集成MyBatis主要是为了简化传统的Spring MVC + MyBatis架构,让开发变得更加快捷。以下是创建一个简单Spring Boot + MyBatis项目的步骤举例:
1. **初始化项目**:
- 创建一个新的Spring Boot项目,可以使用Maven或Gradle构建工具。
- 添加Spring Boot Web、Spring Data JPA和MyBatis Starter相关的依赖到pom.xml或build.gradle文件。
```xml
<!-- Maven -->
<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>
// Gradle
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter'
```
2. **配置数据源**:
- 在application.properties或application.yml中设置数据库连接信息。
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=your_password
```
3. **创建Mapper接口**:
- 在src/main/java目录下,创建一个Mapper接口,例如UserMapper.java,声明SQL映射方法。
```java
public interface UserMapper {
User selectUser(int id);
}
```
4. **生成Mapper XML文件**:
- 使用MyBatis的generator工具(如MyBatis Generator或通过IDEA插件)自动生成Mapper XML文件,如UserMapper.xml。
5. **配置MyBatis扫描路径**:
- 在Spring Boot主类上添加`@EnableAutoConfiguration`和`@MapperScan`注解,指定Mapper接口所在的包名。
```java
@SpringBootApplication
@EnableAutoConfiguration
@MapperScan("com.example.demo.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
6. **编写Repository接口**:
- 如果需要,可以创建Repository接口,继承JpaRepository并注入对应Mapper接口。
```java
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.entity.User;
public interface UserRepository extends JpaRepository<User, Integer> {}
```
7. **使用Repository**:
- 现在可以在服务层或控制器中注入Repository接口,并直接调用其中的方法,如查询用户。
```java
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUser(int id) {
return userRepository.selectUser(id);
}
}
```
阅读全文