【Java 系列】使用 Spring Boot 与 MyBatis Plus 快速构建应用 引言 Spring Boot 和 MyBatis Plus 是当今 Java 开发领域中的主流框架。Spring Boot 简化了 Java 应用程序的开发流程,MyBatis Plus 则是 MyBatis 框架的增强版本,提供了更多便利的功能, 例如集成了很多初始增删改查的方法。本篇入门博客将引导你如何使用 Spring Boot 和 MyBatis Plus 构建高效的 Java 应用。
1. 什么是 Spring Boot? Spring Boot 是 Spring 框架的一部分,它旨在简化 Spring 应用程序的初始化和开发过程。通过使用 Spring Boot,你可以通过少量的配置和约定来创建一个完全可运行的独立应用程序。它还提供了内嵌式 Web 服务器,使得部署和运行应用程序变得更加简单。
2. 什么是 MyBatis Plus? MyBatis Plus 是基于 MyBatis 框架的增强工具包,它简化了 MyBatis 的使用,并提供了更多的功能。MyBatis Plus 自动实现了基本的 CRUD 操作,还提供了诸如分页查询、条件查询、自动填充、乐观锁等功能。使用 MyBatis Plus 可以大幅提高开发效率。
3. 环境搭建 在开始之前,确保你已经安装了以下环境:
JDK 8 或更高版本
Maven
IDE(推荐使用 IntelliJ IDEA)
4. 创建 Spring Boot 项目 使用 Spring Initializr(https://start.spring.io/)创建一个新的Spring Boot 项目。在该页面选择所需的依赖,包括 Web 和 MyBatis Plus。
pom.xml 文件中的重要依赖
1 2 3 4 5 <dependency > <groupId > com.baomidou</groupId > <artifactId > mybatis-plus-boot-starter</artifactId > <version > 3.5.2</version > </dependency >
5. 配置 MyBatis Plus 在 application.yml
文件中,添加数据库连接信息和 MyBatis Plus 相关配置。例如:
1 2 3 4 5 6 7 8 9 10 11 12 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true username: root password: root mybatis-plus: type-aliases-package: com.github.cuifuan.mp.domain mapper-locations: classpath:/mapper/*Mapper.xml configuration: map-underscore-to-camel-case: true mapper-default-scope: classpath*:mapper/*.xml
这里我们假设数据库为 MySQL,并创建了一个名为springboot
的数据库。
6. 安装 MybatisX 插件 在 IDEA 中安装插件,用来生成实体、service
层以及 Mapper
等文件。
使用 IDEA 连接 MySQL 数据库
输入数据库地址以及账号密码,然后点击测试连接,成功后点击确定然后关闭弹窗
测试连接成功后,点击确定
7. 生成实体类和 Mapper 接口
点击生成填写如下
选择 Mybatis Plus 的生成选项
观察到生成的 Java 实体类,其中使用了 MyBatis 的注解来映射数据库字段和实体类属性。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 package com.example.myapp.entity;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;@TableName(value = "user_info") @Data public class UserInfo implements Serializable { @TableId(type = IdType.AUTO) private Long id; }
接着,创建 Mapper 接口,继承BaseMapper
并指定泛型为对应的实体类:
1 2 3 4 5 6 7 8 9 public interface UserInfoMapper extends BaseMapper <UserInfo> { }
8. 查看 Service 和 新建 Controller 在 Service 层,可以定义业务逻辑并调用 Mapper 接口进行数据操作。在 Controller 层,处理 HTTP 请求并调用相应的 Service 方法。
1 2 3 4 5 6 7 8 9 @Service public class UserInfoService extends ServiceImpl <UserInfoMapper, UserInfo> { }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package com.example.myapp.controller;import com.example.myapp.entity.User;import com.example.myapp.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController @RequestMapping("/users") public class UserController { }
@RestController
注解,相当于@ResponseBody
+ @Controller
, 通过此注解就不需要将 @ResponseBody
再次添加到所有的请求方法上。
@RequestMapping
注解在类上表示给此类增加一个父路径,所有此类的方法都要走到这个路径下面
@GetMapping
相当于简化 @RequestMapping(value = "{id}", method = RequestMethod.GET)
9. 测试和运行应用程序 现在,已经完成了基本的配置和代码编写。运行应用程序,访问 API 端点,测试 API 是否能正常工作。
mapper 包扫描配置在启动类
1 2 3 4 5 6 7 8 9 10 @EnableTransactionManagement @SpringBootApplication @MapperScan("com.github.cuifuan.mp.mapper") public class SpringBootMybatisApplication { public static void main (String[] args) { SpringApplication.run(SpringBootMybatisApplication.class, args); } }
重要的地方,@MapperScan("com.github.cuifuan.mp.mapper")
启动 Spring Boot 应用,访问 http://127.0.0.1:8080/users/2
10. 总结 本篇博客介绍了如何使用 Spring Boot 和 MyBatis Plus 构建高效的 Java 应用。
通过简单的配置和少量的代码,你可以快速搭建一个功能完备的应用程序。
主要结构点在于:
引入依赖
配置文件
生成统一 dao、mapper、service 文件
11. 数据库文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0 ;DROP TABLE IF EXISTS `user_info`;CREATE TABLE `user_info` ( `id` bigint NOT NULL AUTO_INCREMENT, `username` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `full_name` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `address` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `card_no` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `email` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `sex` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `in_time` datetime DEFAULT NULL , `is_member` bit(1 ) DEFAULT NULL , `password` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , `remark` varchar (255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL , PRIMARY KEY (`id`), KEY `idx_username` (`username`), KEY `idx_username_a` (`username`(10 )) ) ENGINE= InnoDB AUTO_INCREMENT= 9156521 DEFAULT CHARSET= utf8mb4 COLLATE = utf8mb4_general_ci;SET FOREIGN_KEY_CHECKS = 1 ;INSERT INTO `springboot`.`user_info` (`id`, `username`, `full_name`, `address`, `card_no`, `email`, `sex`, `in_time`, `is_member`, `password`, `remark`)VALUES (2 , 'zhaofang' , '鑫' , '天津市荆门市南长宁路u座 520412' , '131028200107122001' , 'xiulan67@example.net' , '男' , NULL , NULL , 'qr4srM%hw_' , '' );