Spring Boot集成MyBatis:从零开始快速上手
1. 添加依赖
在pom.xml文件中添加MyBatis和数据库驱动的依赖。以MySQL为例:
<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Boot Starter MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>3.0.3</version> <!-- 请根据需要选择合适的版本 -->
    </dependency>
    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- Spring Boot Starter Test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
2. 配置数据源
在application.yml或application.properties文件中配置数据源和MyBatis的相关信息。
application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  mapper-locations: classpath:mappers/*.xml
  type-aliases-package: com.yourpackage.model
  configuration:
    map-underscore-to-camel-case: true
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mappers/*.xml
mybatis.type-aliases-package=com.yourpackage.model
mybatis.configuration.map-underscore-to-camel-case=true
3. 创建实体类(Entity)
根据数据库表结构创建对应的实体类。例如,有一个User表:
package com.yourpackage.model;
public class User {
    private Integer id;
    private String name;
    private Integer age;
    // Getters and Setters
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}
4. 创建Mapper接口
创建一个Mapper接口,定义数据库操作方法。例如:
package com.yourpackage.mapper;
import com.yourpackage.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> getAllUsers();
}
你也可以使用XML文件来定义SQL语句,而不是注解。
5. 创建Mapper XML文件(可选)
如果使用XML文件定义SQL语句,创建mappers/UserMapper.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yourpackage.mapper.UserMapper">
    <select id="getAllUsers" resultType="com.yourpackage.model.User">
        SELECT * FROM user
    </select>
</mapper>
6. 创建Service层(可选)
创建Service层来处理业务逻辑。例如:
package com.yourpackage.service;
import com.yourpackage.model.User;
import com.yourpackage.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public List<User> getAllUsers() {
        return userMapper.getAllUsers();
    }
}
7. 创建Controller层
创建Controller层来处理HTTP请求。例如:
package com.yourpackage.controller;
import com.yourpackage.model.User;
import com.yourpackage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }
}
8. 启动项目
运行Spring Boot应用程序,访问http://localhost:8080/users,即可看到从数据库中查询到的用户数据。
9. 注意事项
- 
版本兼容性:确保MyBatis和Spring Boot的版本兼容。 
- 
事务管理:如果需要事务管理,可以在Service层方法上添加 @Transactional注解。
- 
日志配置:可以通过配置日志级别来查看MyBatis的SQL执行情况。例如,在 application.properties中添加以下配置:
logging.level.org.apache.ibatis=DEBUG
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号