从零开始:Spring Boot + MyBatis 搭建后端接口完整教程
前言你是否刚接触 Spring Boot面对一堆配置不知从何下手是否看了很多教程却还是搞不清 Controller、Service、Mapper 到底谁先谁后本文带你从零开始手把手搭建一个完整的 Spring Boot MyBatis 项目。不绕弯子不堆砌代码只讲最核心的一个查询接口。从创建项目、配置数据库、到编写每一层代码最后成功返回 JSON 数据每一步都有清晰的代码和通俗的解释。读完本文你将彻底理解 Spring Boot 的四层架构并能独立开发一个完整的数据查询接口。Spring Boot MyBatis 开发接口步骤详解第一步创建项目名称按需填写建议英文名称类型一定要选择MavenJDK选择17Java这里选择17依赖添加图中四个基础的依赖都可以直接搜索添加第二步手动创建基础项目结构springboot-demo/ ├── src/main/java/com/example/demo/ │ ├── DemoApplication.java # 启动类 │ ├── controller/ │ │ └── UserController.java # 控制器 │ ├── service/ │ │ ├── UserService.java # 服务接口 │ │ └── impl/ │ │ └── UserServiceImpl.java # 服务实现 │ ├── mapper/ │ │ └── UserMapper.java # 数据访问接口 │ └── entity/ │ └── User.java # 实体类 ├── src/main/resources/ │ ├── application.yml # 配置文件 │ └── mapper/ │ └── UserMapper.xml # SQL映射文件 └── pom.xml # 依赖配置第三步写配置文件位置resources/application.ymlspring: datasource: url: jdbc:mysql://localhost:3306/test_db?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf-8 username: 你的数据库账号 password: 你的数据库密码 mybatis: mapper-locations: classpath:mapper/*.xml解释配置数据库连接和 MyBatis 设置。url中的“test_db”是你的数据库表名还需要设置你的数据库账号密码第四步创建数据库表-- 1. 创建数据库 CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 2. 使用数据库 USE test_db; -- 3. 创建用户表 CREATE TABLE IF NOT EXISTS user ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT 用户ID, name VARCHAR(50) NOT NULL COMMENT 用户名, age INT COMMENT 年龄, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户表; -- 4. 插入模拟数据 INSERT INTO user (name, age) VALUES (张三, 25), (李四, 30);第五步创建实体类EntityData public class User { private Long id; // 用户ID private String name; // 用户名 private Integer age; // 年龄 }解释实体类对应数据库的一张表。类名对应表名属性对应表的字段。比如 User 类对应 user 表name 属性对应 name 字段。添加Data注解就不用再手动去添加getting和setting了第六步创建 Controller 层RestController // 处理HTTP请求返回JSON数据 RequestMapping(/users) // 这个Controller处理 /users 开头的请求 public class UserController { Autowired private UserService userService; GetMapping(/{id}) // 处理 GET /users/123 这种请求 public User getUser(PathVariable Long id) { // PathVariable从URL中取参数 return userService.getUserById(id); // 调用Service } }解释RestController告诉 Spring 这个类处理 HTTP 请求并且方法返回的结果直接转成 JSONRequestMapping(/users)所有请求路径都以/users开头GetMapping(/{id})只处理 GET 请求{id}是路径变量PathVariable把 URL 中的{id}赋值给方法参数第七步创建 Service 层接口public interface UserService { User getUserById(Long id); }实现类Service // 交给Spring管理 public class UserServiceImpl implements UserService { Autowired // 自动注入Mapper private UserMapper userMapper; Override public User getUserById(Long id) { return userMapper.findById(id); // 调用Mapper执行SQL } }解释ServiceSpring 会创建这个类的实例并管理它AutowiredSpring 自动把 UserMapper 的实现对象赋值进来Service 层的作用业务逻辑处理比如参数校验、权限判断。目前很简单直接调 Mapper第八步创建 Mapper 接口Mapper // 告诉Spring这是MyBatis的映射器 public interface UserMapper { User findById(Param(id) Long id); // 根据ID查询用户 }解释MapperSpring 会为这个接口自动生成实现类findById方法名对应 SQL 的 idParam(id)把参数传给 SQL 语句第九步 编写 SQL 映射文件Mapper.xmlmapper namespacecom.example.demo.mapper.UserMapper select idfindById resultTypecom.example.demo.entity.User SELECT id, name, age FROM user WHERE id #{id} /select /mapper解释namespace必须指向上面那个 Mapper 接口的全路径select标签表示这是一个查询操作id对应 Mapper 接口的方法名resultType查询结果要转换成哪个实体类#{id}占位符会被方法传进来的参数替换为什么要有这个文件把 SQL 语句从 Java 代码中分离出来方便管理和优化 SQL第十步添加 Mapper 扫描并运行DemoApplication类的 main 方法SpringBootApplication MapperScan(com.example.demo.mapper) // 扫描Mapper接口所在包 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }解释MapperScan告诉 Spring 去哪里找Mapper注解的接口自动生成实现类。访问http://localhost:8080/users/1请求流程总结textHTTP请求 → Controller → Service → Mapper → SQL → 数据库 ↓ ↓ ↓ ↓ /users/1 接收参数 业务逻辑 执行SQL ↓ 返回JSON每一步的职责Controller接收请求、参数校验、返回结果Service业务逻辑处理Mapper数据库操作Entity数据载体
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2539105.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!