商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Spring Boot中集成MyBatis操作数据库的超详细步骤(含代码)

Spring Boot中集成MyBatis操作数据库的超详细步骤(含代码)

  发布于2026-07-24 阅读(0)

扫一扫,手机访问

前言

在Ja va开发这个领域,MyBatis可以说是轻量级持久层框架里的一把好手——它灵活、SQL可控,特别适合那些需要复杂数据库操作的应用场景。当它遇上Spring Boot,整个数据操作的体验就更丝滑了。好,接下来我们就一步步来看,如何在Spring Boot项目中集成MyBatis,并实现最基础的增删改查功能。从依赖配置入手,到实体类、Mapper接口、Service层和Controller层的搭建,最终形成一个清晰、可用的分层应用结构。

Spring Boot中集成MyBatis操作数据库的超详细步骤(含代码)

1. 项目依赖配置

要在Spring Boot项目里用上MyBatis,第一步自然是把相关依赖加到pom.xml里。这里推荐使用mybatis-spring-boot-starter,它能帮我们快速完成集成,同时再配上MySQL的驱动mysql-connector-ja va,数据库连接的问题就解决了。

1.1 引入MyBatis和数据库驱动依赖

pom.xml中,把下面这段依赖配置加进去:


    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        2.2.0
    
    
    
        mysql
        mysql-connector-ja va
        runtime
    

1.2 数据源配置

依赖搞定后,接下来就是在application.properties里配置数据库连接信息了。这一步的目的是让MyBatis知道该连哪个数据库、怎么连。这里我们配置了数据库URL、用户名、密码以及其他连接参数。

spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 指定MyBatis的Mapper XML文件位置
mybatis.mapper-locations=classpath:mapper/*.xml

2. 创建数据库映射实体类

MyBatis通过实体类来映射数据库表结构。以User表为例,我们需要创建一个实体类User,用来表示用户信息,里面包含ID、用户名、邮箱这类字段。

com.example.demo.model包下创建User类,让它和数据库里的用户表字段一一对应。这个类包含属性以及对应的getter和setter方法。

package com.example.demo.model;

public class User {
    private Long id;
    private String username;
    private String email;

    // Getter 和 Setter 方法
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

3. 创建Mapper层接口

Mapper层是MyBatis和数据库交互的核心地带。我们通过Mapper接口来定义数据操作方法,直接在上面用@Select这类注解写上SQL语句,就能实现增删改查了。

com.example.demo.mapper包下创建UserMapper接口,并加上@Mapper注解。这个接口里定义的方法,MyBatis会自动帮我们实现对应的SQL操作。

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import ja va.util.List;

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user")
    List findAll();

    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(Long id);
}

可以看到,findAll()用来查询所有用户,findById()则根据ID查特定用户的信息。

4. 创建Service层

Service层主要负责封装业务逻辑。通过这一层,可以把数据库操作和业务需求隔离开来,让代码更清晰,也更容易维护。

4.1 定义Service接口

com.example.demo.service包下创建UserService接口,定义获取所有用户和根据ID查用户的方法:

package com.example.demo.service;

import com.example.demo.model.User;

import ja va.util.List;

public interface UserService {
    List getAllUsers();
    User getUserById(Long id);
}

4.2 实现Service接口

接着在com.example.demo.service.impl包下创建UserServiceImpl类,实现UserService接口。用@Service注解声明它是个服务类,再通过@Autowired注入UserMapper,这样就能调用Mapper里的方法完成数据库操作了。

package com.example.demo.service.impl;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import ja va.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List getAllUsers() {
        return userMapper.findAll();
    }

    @Override
    public User getUserById(Long id) {
        return userMapper.findById(id);
    }
}

在这里,UserServiceImpl把Mapper中的数据库操作进一步包装起来,让Controller层可以更专注于接口设计和请求处理。

5. 创建Controller层

Controller层是前端和后端交互的入口。它负责接收客户端请求,调用Service层的业务逻辑,然后把结果返回给客户端。这里我们使用Spring MVC的@RestController注解来创建控制器。

com.example.demo.controller包下创建UserController类,用来处理用户相关的HTTP请求。通过@Autowired注入UserService,然后定义接口方法,实现获取用户列表和根据ID查用户的功能。

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import ja va.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }
}

上面这段代码定义了两个接口:

  • getAllUsers():获取所有用户信息。
  • getUserById(Long id):根据用户ID获取特定用户信息。

6. 运行和测试项目

以上步骤都完成后,就可以启动项目测试接口了,看看功能是否如预期那样跑起来。

6.1 启动项目

直接运行Spring Boot项目的主类DemoApplication中的main方法,应用程序就会启动。

6.2 测试接口

用Postman这样的工具来测试API接口。比如,发送GET请求到http://localhost:8080/users,就能拿到所有用户信息;发送GET请求到http://localhost:8080/users/{id},则可以获取指定用户的信息。

7. 总结

这篇教程把Spring Boot中集成MyBatis的完整流程走了一遍:从项目依赖配置、实体类、Mapper接口的创建,到Service层和Controller层的开发,最终实现了数据库的基本操作。这种结构化的分层设计,让项目代码清晰可读,业务逻辑和数据操作各司其职,维护和扩展起来也方便很多。MyBatis配合Spring Boot,确实是实现数据持久化操作的高效组合,希望这份指南能帮大家更好地掌握这两者的集成方式。

本文转载于:https://www.jb51.net/program/3679939at.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注