目录

一、项目搭建与依赖配置

1.1 项目结构

1.2 Maven核心依赖

1.3 配置文件

二、模型层(Model)

三、数据访问层(Dao)

四、控制层(Controller)

五、项目启动类

六、运行与测试

6.1 启动项目

6.2 接口测试

七、项目总结


         在 Java 后端开发领域,SpringBoot 以其快速搭建项目、简化配置的特性广受欢迎,MyBatis 则是一款灵活的持久层框架。在本篇博客中,我们将学习如何使用 SpringBoot 整合 MyBatis 进行注解式开发,实现一个简单的用户数据查询功能。相比于传统的 XML 配置方式,注解开发更加简洁明了。

一、项目搭建与依赖配置

1.1 项目结构

首先来看我们的项目结构,采用了典型的 Maven 项目分层

  • controller控制层,负责接收请求并返回响应。

  • dao数据访问层,定义数据库操作接口。

  • model模型层,对应数据库表的实体类。

  • resources资源目录,存放配置文件等。

1.2 Maven核心依赖

在 pom.xml 中,引入了关键依赖:

  • spring-boot-starter-web:提供 SpringBoot Web 开发所需的基础组件,如控制器、Servlet 容器等。

  • mybatis-spring-boot-starter:实现 MyBatis 与 SpringBoot 的无缝整合,简化 MyBatis 相关配置。

  • mysql-connector-java:MySQL 数据库的 JDBC 驱动,用于建立数据库连接。

<dependencies>
    <!-- SpringBoot Web 依赖,用于构建 Web 应用 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- SpringBoot 测试依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- MyBatis 与 SpringBoot 整合依赖 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.1</version> <!-- 请检查最新版本 -->
    </dependency>

    <!-- MySQL 驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.24</version>
    </dependency>
</dependencies>

1.3 配置文件

在 resources目录下application.properties文件中,配置数据库连接信息和 MyBatis 相关设置:

  • spring.datasource 相关配置指定了数据库驱动、用户名、密码和连接地址,这里连接的是本地 MySQL 数据库的 jk202508 库。

  • mybatis.type-aliases-package设置 MyBatis 类型别名的包路径,这样在 Mapper 中可以直接使用实体类名,而无需写全类名。

  • logging.level.com.pp.springbootmybatis.dao=debug将 dao 包下的日志级别设为 debug,在控制台能看到 MyBatis 执行的 SQL 语句等调试信息。

# 配置服务端口
server.port=8090

# 数据库连接配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=152602
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jk202508

# MyBatis 配置:指定实体类所在包,用于类型别名
mybatis.type-aliases-package=com.pp.springbootmybatis.model
# 开启 dao 层日志调试,方便查看 SQL 执行情况
logging.level.com.pp.springbootmybatis.dao=debug

二、模型层(Model)

        创建与数据库表 t_user 对应的实体类 Users,位于 com.pp.springbootmybatis.model 包下:

        这个类的属性 uidunameupwd 分别对应数据库表 t_user 的字段,通过 Getter 和 Setter 方法实现属性的访问和修改。

package com.pp.springbootmybatis.model;

public class Users {

    private  int  uid;

    private  String  uname;

    private String  upwd;

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }



}

三、数据访问层(Dao)

        在 com.pp.springbootmybatis.dao 包下创建 IUserDao 接口,使用 MyBatis 注解进行数据库操作:

  • @Mapper 注解:告诉 SpringBoot 这是一个 MyBatis 的 Mapper 接口,框架会自动为其生成实现类,无需手动编写 DAO 实现。

  • @Select 注解:用于执行查询操作,括号内的 SQL 语句会被 MyBatis 执行,这里是查询 t_user 表的所有数据,并将结果封装为 Users 实体类的列表返回。

package com.pp.springbootmybatis.dao;

import com.pp.springbootmybatis.model.Users;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper     // 标记为 MyBatis 的 Mapper 接口,SpringBoot 会自动扫描并生成实现类
public interface IUserDao {

    @Select("select  *  from  t_user")
    public List<Users>  queryListUser(); // 查询所有用户信息,返回 Users 对象列表

}

四、控制层(Controller)

        在 com.pp.springbootmybatis.controller 包下创建 DataController,作为 Web 层接收请求并调用 DAO 层方法:

  • @RestController是 @Controller 和 @ResponseBody 的组合,表明该类中的方法返回值会直接以 JSON 等格式响应给客户端,无需再使用 @ResponseBody 注解。

  • @RequestMapping:用于映射 HTTP 请求路径,@RequestMapping("/data") 表示该控制器下的所有请求路径都以 /data 为前缀,@RequestMapping("/stus") 则具体映射到 /data/stus 路径。

  • @Autowired:自动装配 IUserDao 实例,SpringBoot 会根据类型找到对应的 Bean 并注入。

  •  loadStusData 方法中,调用 dao.queryListUser() 方法查询用户数据,并将结果返回,SpringBoot 会自动将返回的 List<Users> 转换为 JSON 格式响应给客户端。

package com.pp.springbootmybatis.controller;

import com.pp.springbootmybatis.dao.IUserDao;
import com.pp.springbootmybatis.model.Users;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController     // 组合注解,相当于 @Controller + @ResponseBody,表示该类是 REST 控制器,返回值直接转为 JSON
@RequestMapping("/data")    // 映射请求路径前缀
public class DataController {

    // 自动注入 IUserDao 实例
    @Autowired
    private IUserDao dao;

    // 映射请求路径为 /data/stus
    @RequestMapping("/stus")
    public List<Users>  loadStusData()
    {
        System.out.println("DataController  is loadStusData  start....");

        // 调用 DAO 方法查询用户列表
        List<Users> lists = this.dao.queryListUser();

        // 返回查询结果,会自动转为 JSON 格式
        return lists;
    }
}

五、项目启动类

        在 com.pp.springbootmybatis 包下的SpringbootmybatisApplication 类,就是项目的启动入口:

  • @SpringBootApplication:是 SpringBoot 的核心注解,包含了 @Configuration(表明是配置类)、@EnableAutoConfiguration(开启自动配置)、@ComponentScan(扫描组件,默认扫描当前包及其子包下的组件)等注解的功能,让 SpringBoot 能自动完成大量配置工作。

  • SpringApplication.run(SpringbootmybatisApplication.class, args):启动 SpringBoot 应用,加载配置并启动内嵌的 Servlet 容器(如 Tomcat)。

package com.pp.springbootmybatis;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication  // 组合注解,包含 @Configuration、@EnableAutoConfiguration、@ComponentScan 等,开启自动配置和组件扫描
public class SpringbootmybatisApplication {

    // 启动 SpringBoot 应用
    public static void main(String[] args) {
        SpringApplication.run(SpringbootmybatisApplication.class, args);
    }

}

六、运行与测试

6.1 启动项目

        运行 SpringbootmybatisApplication 类 main 方法,启动 SpringBoot 应用。控制台会输出启动日志,看到类似以下内容表示启动成功:

6.2 接口测试

使用浏览器访问 http://localhost:8090/data/stus,如果数据库 jk202508 的 t_user 表中有数据,会得到类似以下的 JSON 响应:

同时,在控制台能看到 MyBatis 执行的 SQL 日志,方便调试:

七、项目总结

        通过本篇博客的实践,我们完成了一个简单的 SpringBoot + MyBatis 注解开发的项目。整个过程充分体现了 SpringBoot 简化配置、快速开发的优势,以及 MyBatis 注解开发在数据访问层的便捷性。

  • 依赖管理:借助 Maven 高效管理项目依赖。

  • 配置简化application.properties 集中配置数据库和 MyBatis 相关信息。

  • 注解驱动:MyBatis 的 @Mapper@Select 等注解,让 DAO 层开发无需编写 XML 映射文件;Spring 的 @RestController@Autowired 等注解,简化了 Web 层和组件注入的开发。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐