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.ymlapplication.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. 注意事项

  1. 版本兼容性:确保MyBatis和Spring Boot的版本兼容。

  2. 事务管理:如果需要事务管理,可以在Service层方法上添加@Transactional注解。

  3. 日志配置:可以通过配置日志级别来查看MyBatis的SQL执行情况。例如,在application.properties中添加以下配置:

logging.level.org.apache.ibatis=DEBUG
posted @   软件职业规划  阅读(112)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示