返回

SpringBoot轻松搞定MyBatis连接MySQL

后端

SpringBoot 集成 MyBatis 实现数据库操作

前言

随着 SpringBoot 框架的流行和 MyBatis ORM 框架的强大功能,将两者结合使用可以为 Java 开发者带来极大的便利。本教程将指导您如何将 SpringBoot 与 MyBatis 连接到 MySQL 数据库,并实现基本的 CRUD(创建、读取、更新和删除)操作。

环境搭建

创建 SpringBoot 项目

  • 使用 IntelliJ IDEA 创建一个新的 SpringBoot 项目。
  • 选择 Spring Initializr 作为项目模板。
  • 输入项目名称和包名。

添加 MyBatis 依赖

pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

配置

application.properties 文件中添加以下配置:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test_db
spring.datasource.username=root
spring.datasource.password=123456
  • test_db 替换为您的数据库名称。
  • root 替换为您的数据库用户名。
  • 123456 替换为您的数据库密码。

代码实现

实体类

创建实体类映射数据库表结构,以 user 表为例:

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Integer age;
}

MyBatis Mapper 接口

定义 MyBatis Mapper 接口来操作数据库,以 UserMapper 为例:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(Long id);
    
    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    int insert(User user);
    
    @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
    int update(User user);
    
    @Delete("DELETE FROM user WHERE id = #{id}")
    int delete(Long id);
}

SpringBoot Controller

在 SpringBoot Controller 中使用 UserMapper 操作数据库,以 UserController 为例:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserMapper userMapper;
    
    @GetMapping("/{id}")
    public User findById(@PathVariable Long id) {
        return userMapper.findById(id);
    }
    
    @PostMapping
    public int insert(@RequestBody User user) {
        return userMapper.insert(user);
    }
    
    @PutMapping
    public int update(@RequestBody User user) {
        return userMapper.update(user);
    }
    
    @DeleteMapping("/{id}")
    public int delete(@PathVariable Long id) {
        return userMapper.delete(id);
    }
}

总结

通过以上步骤,您已成功将 SpringBoot 与 MyBatis 连接到 MySQL 数据库。通过使用 UserMapper 接口,您可以在 SpringBoot Controller 中轻松执行 CRUD 操作。希望本教程能帮助您更好地理解和利用 SpringBoot 和 MyBatis 的强大功能。

常见问题解答

  1. 如何连接到不同的数据库?
    只需更改 application.properties 文件中的数据库连接信息即可。

  2. 如何创建其他实体类和 Mapper 接口?
    按照实体类和 Mapper 接口的创建步骤进行操作,使用不同的名称和表结构。

  3. 如何执行更复杂的数据库操作?
    可以使用 MyBatis 提供的各种注解和 XML 映射文件来执行更高级的操作。

  4. 如何处理数据库异常?
    在 Controller 中使用 @ExceptionHandler 注解来捕获和处理数据库异常。

  5. 如何配置 MyBatis 的日志记录?
    logback.xml 文件中添加以下配置:

    <logger name="org.mybatis" level="DEBUG" />
    <logger name="org.apache.ibatis" level="DEBUG" />