MyBatis-Plus快速入门:从安装到第一个Demo

一、前言

在现代 Java 应用程序中,数据访问层的效率与简洁性至关重要。MyBatis-Plus 作为 MyBatis 的增强工具,旨在简化常见的数据操作,提升开发效率。它提供了丰富的功能,如自动生成 SQL、条件构造器和简单易用的 CRUD 操作,极大地减少了代码的冗余。

本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。无论你是 MyBatis 的新手还是希望提升开发效率的老手,本文都将为你提供清晰的指导和实用的技巧。

7d4e9e4c-d9f6-4ab1-8da2-e34f6d79de61

二、快速入门

以下是一个 MyBatis-Plus 入门 Demo,展示如何使用 MyBatis-Plus 进行基本的数据库操作。

2.1 数据库准备

在mysql,创建一张用户表,并插入数据

DDL语句

DROP TABLE IF EXISTS `user`;CREATE TABLE `user`
(id BIGINT NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);

DML语句

DELETE FROM `user`;INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

这里使用Dbeaver数据库客户端操作

image

image

2.2 创建SpringBoot工程

使用IDEA创建

image

image

image

image

2.3 添加依赖

在pom文件中,添加如下依赖

		<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>[8.0.0,9.0.0)</version> <!-- 选择 8.0.x 的最新版本 --></dependency>

image

备注:springboot版本建议降低,后续启动可能报错

image

2.4 application.yml​配置

在项目中,一般使用yml​配置,先把工程中application.properties文件改为application.yml

image

image

spring:datasource:url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTCdriver-class-name: com.mysql.cj.jdbc.Driverusername: password: mybatis-plus:mapper-locations: classpath:mapper/**/*.xml

2.5 创建实体类

在创建之前,建议先创建几个包,分别存放

image

image

@Data
public class User {private Long id;private String name;private Integer age;private String email;
}

2.6 创建 Mapper 接口

创建一个 Mapper 接口 UserMapper.java​:

image

import com.baomidou.mybatisplus.core.mapper.BaseMapper;public interface UserMapper extends BaseMapper<User> {
}

2.7 创建 Service 类

创建一个服务类 UserService.java​:

image

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;@Service
public class UserService extends ServiceImpl<UserMapper, User> {
}

2.8 创建 Controller 类

创建一个控制器 UserController.java​:

image

@RestController
@RequestMapping("/user")
public class UserController {@Resourceprivate UserService userService;/*** 获取全部用户** @return List<User>*/@PostMapping("/list")public List<User> getAllUsers() {return userService.list();}/*** 根据用户id查询用户** @param id 用户id* @return User*/@GetMapping("/get_by_id")public User getUserById(@RequestParam("id") Long id) {return userService.getById(id);}}

2.9 配置启动类扫描

在 Spring Boot 启动类中添加 @MapperScan​ 注解,扫描 Mapper 文件夹:

image

2.10 启动服务

image

2.11 测试

使用postman进行接口测试

  1. 查询全部用户

image

  1. 根据id查询用户

image

通过本篇文章,我们已经从安装到配置,再到实现第一个 Demo,全面了解了 MyBatis-Plus 的基本用法。MyBatis-Plus 的简化操作和强大功能,可以显著提高开发效率,减少样板代码,使我们能更专注于业务逻辑的实现。

随着对 MyBatis-Plus 的深入了解,后续会探索更多高级特性,如分页查询、逻辑删除和性能优化等,以进一步提升应用的灵活性和响应速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/748.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

零基础Java第十二期:类和对象(三)

目录 一、static成员&#xff08;补&#xff09; 1.1. static修饰成员方法 1.2. static成员变量初始化 二、代码块 2.1. 静态代码块和实例代码块 ​三、对象的打印 一、static成员&#xff08;补&#xff09; 1.1. static修饰成员方法 public class Linear {public st…

Topaz Video AI for Mac 视频无损放大软件安装教程【保姆级,操作简单轻松上手】

Mac分享吧 文章目录 Topaz Video AI for Mac 视频无损放大软件 安装完成&#xff0c;软件打开效果一、Topaz Video AI 视频无损放大软件 Mac电脑版——v5.3.5⚠️注意事项&#xff1a;1️⃣&#xff1a;下载软件2️⃣&#xff1a;安装软件&#xff0c;将安装包从左侧拖入右侧文…

Java基础语法①Java特点和环境安装

目录 1. Java的概念和用途 1.1 Java的概念和发展史 1.2 Java的重要性 1.3 Java的特点 2. Java环境 2.1 JVM 和 JDK 2.2 Java环境安装 2.3 安装IntelliJ IDEA并使用 写在前面&#xff1a;本人已经学习了C/C方向的内容&#xff0c;大二结束找到实习回学校后还有时间&…

atest v0.0.18 提供了强大、灵活的 HTTP API Mock 功能

atest 发布 v0.0.18 atest 是致力于帮助开发者持续保持高质量 API 的开源接口工具。 你可以在命令行终端或者容器中启动&#xff1a; docker run -p 8080:8080 ghcr.io/linuxsuren/api-testing:v0.0.18 亮点 在开源之夏 2024 中 atest 增加了基于 MySQL 的测试用例历史的支持HT…

ele-table表格列表内,双击编辑部分信息(el-table组件同理)

说明 ele-table 为公司内部组件&#xff0c;重点看 【主要代码】 部分代码 ele-table表格列表内&#xff1a;双击需要编辑的区域&#xff0c;编辑部分信息 实现 双击需要编辑的数据&#xff0c;展示输入框/日期选择&#xff0c; 展示输入框&#xff1a;修改完之后&#xff0c;按…

开源的GPT-4o模型使用指南,Mini-Omni2集视觉、语音和双工能力于一体的

1. Mini-Omni2 是什么&#xff1f; Mini-Omni2 是一个开源的多模态语言模型&#xff0c;旨在模拟 GPT-4o 的视觉、语音和文本处理能力。它能够理解和生成视觉、听觉和文本内容&#xff0c;并支持实时的语音输出和灵活的双工交互。 Mini-Omni2 由清华大学和 Inspirai 的研究人…

Serverless + AI 让应用开发更简单

本文整理自 2024 云栖大会&#xff0c;阿里云智能高级技术专家&#xff0c;史明伟演讲议题《Serverless AI 让应用开发更简单》 随着云计算和人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在…

正式开源:从 Greenplum 到 Cloudberry 迁移工具 cbcopy 发布

Cloudberry Database 作为 Greenplum 衍生版本和首选开源替代&#xff0c;由 Greenplum 原始团队成员创建&#xff0c;与 Greenplum 保持原生兼容&#xff0c;并能实现无缝迁移&#xff0c;且具备更新的 PostgreSQL 内核和更丰富的功能。GitHub: https://github.com/cloudberry…

基于人工智能的搜索和推荐系统

互联网上的搜索历史分析和用户活动是个性化推荐的基础&#xff0c;这些推荐已成为电子商务行业和在线业务的强大营销工具。随着人工智能的使用&#xff0c;在线搜索也在改进&#xff0c;因为它会根据用户的视觉偏好提出建议&#xff0c;而不是根据每个客户的需求和偏好量身定制…

SpringBoot starter机制

1、出现的背景 在spring boot之前&#xff0c;想要在spring中集成redis&#xff0c;需要做的事情包括&#xff1a; &#xff08;1&#xff09;引入jar包&#xff1a;包括redis的jar包&#xff0c;redis依赖的jar包&#xff0c;相应的版本&#xff0c;与spring版本是否兼容等 …

在 JavaScript 中,`Array.prototype.filter` 方法用于创建一个新数组,该数组包含通过测试的所有元素

文章目录 1、概念在你的代码中的作用示例总结 2、实战3、formattedProducts4、filteredProducts 1、概念 在 JavaScript 中&#xff0c;Array.prototype.filter 方法用于创建一个新数组&#xff0c;该数组包含通过测试的所有元素。具体来说&#xff0c;filter 方法会遍历数组中…

通过源码分析类加载器里面可以加载的类

类列表 每一个ClassLoader里面的类列表&#xff0c;类的数量都是固定的。 对上一节中的dex反编译 使用DexClassLoader类动态加载插件dex   利用jadx对dex进行反编译可以看到有哪些类 源码分析 BaseDexClassLoader 从BaseDexClassLoader类加载器开始分析 在BaseDexClassLoade…

系统架构设计师(软考高级)一站式通关课程

系统架构设计师&#xff08;软考高级&#xff09; 一站式通关课程 系统架构设计师&#xff08;软考高级&#xff09;教程&#xff08;三连评论分享链接&#xff01;&#xff09; &#x1f3af; 课程亮点&#xff1a; 全面覆盖&#xff1a; 从基础概念到高级应用&#xff0c;涵盖…

C++ 优先算法——盛最多水的容器(双指针)

目录 题目&#xff1a;盛最多水的容器 1. 题目解析 2. 算法原理 3. 代码实现 题目&#xff1a;盛最多水的容器 1. 题目解析 题目截图: 如图所示&#xff1a; 水的高度一定是由较低的那条线的高度决定的&#xff1a;例1图中&#xff0c;是由7决定的&#xff0c;然后求出…

SQL-lab靶场less1-4

说明&#xff1a;部分内容来源于网络&#xff0c;如有侵权联系删除 前情提要&#xff1a;搭建sql-lab本地靶场的时候发现一些致命的报错&#xff1a; 这个程序只能在php 5.x上运行&#xff0c;在php 7及更高版本上&#xff0c;函数“mysql_query”和一些相关函数被删除&#xf…

Golang | Leetcode Golang题解之第535题TinyURL的加密与解密

题目&#xff1a; 题解&#xff1a; import "math/rand"type Codec map[int]stringfunc Constructor() Codec {return Codec{} }func (c Codec) encode(longUrl string) string {for {key : rand.Int()if c[key] "" {c[key] longUrlreturn "http:/…

使用 Elasticsearch 进行语义搜索

Elasticsearch 是一款功能强大的开源搜索引擎&#xff0c;可用于全文搜索、分析和数据可视化。传统上&#xff0c;Elasticsearch 以其执行基于关键字/词汇的搜索的能力而闻名&#xff0c;其中文档基于精确或部分关键字匹配进行匹配。然而&#xff0c;Elasticsearch 已经发展到支…

计算机毕业设计Python+大模型新闻自动分类 新闻舆情预测 新闻语料情感分析 新闻推荐系统 朴素贝叶斯分类算法 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

【097】基于SpringBoot+Vue实现的个人社区博客管理系统

系统介绍 演示视频 小白博客2.0&#xff08;SpringbootVue)源码数据库讲解视频设计文档 基于SpringBootVue实现的小白博客2.0系统设计了超级管理员、系统观察者、用户三种角色&#xff0c;超级管理员可对用户授权&#xff0c;具体实现的功能如下 文章采用了比较火的Markdown编…

LM Head weights;ChatGPT-3词汇量:175,000;llama7b 词汇量,词嵌入维度:4096

目录 LM Head weights ChatGPT-3词汇量:175,000 llama7b 词汇量 词汇量:32000 max_position_embeddings: 4096 LM Head weights ChatGPT-3词汇量:175,000 ChatGPT-4 确切的词向量种类数量公开信息。但可以根据一些语言模型的相关知识进行推测分析。 一般来说,语言模…