当前位置: 首页 > news >正文

springboot使用mybatisPlus进行数据库增删改查

springboot使用mybatisPlus进行数据库增删改查

提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码和运行结果且前后关联上的去分析和说明(能大量节约您的时间)。

所有文章都*不会*直接把代码放那里,让您自己去看去理解。我希望我的内容对您有用而努力~


文章目录

  • springboot使用mybatisPlus进行数据库增删改查
  • 前言
  • 一、添加项目依赖
  • 二、编写各个配置
  • 三、实现增删改查
    • 查询
    • 添加
    • 修改
    • 删除
  • 总结


本文章是系列文章,技术栈内容为:【springboot+vue】【前后分离】
【详细图文,实操步骤分享,节约时间版】。最终完成一个商业化项目。内容有:
springboot知识
mybatisPlus知识
vue知识
node.js知识

本小节的内容是
mybatisPlus篇章 之 : 04.使用mybatisPlus进行数据库增删改查

本小节有两个附小节,分别是:
mybatisPlus进行多表联动查询(正在上传ing)

mybatisPlus进行分页查询(正在上传ing)



如还没有创建springboot可查阅:
【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)
【上榜文章,一文搞定】现在springboot是3.x以上版本,jdk版本至少要求17.但是很多时候我们电脑是jdk1.8(求稳定性和安全性)。文本分享本机电脑1.8的jdk。idea如何非常简洁快速的创建springboot
文章里面也有 为什么只能是jdk17起和地址指定为阿里云报错的解决办法

本小节为第四小节前面已经分享了通过springboot去关联操作网页数据((RESTful风格和swagger的使用)),加上本小节springboot就可以同时关联网页和操作数据库
RESTful风格是什么,如何去设计


前言

在数据库中创建一个表
当前使用的是mysql数据库

创建一个名为user的表,分别有三个字段(uid uname uage)uid为主键且自增
在这里插入图片描述
在手动添加一些模拟的数据
在这里插入图片描述


一、添加项目依赖

在pom.xml文件的dependencies标签里面 添加新的依赖标签。

<!--springboot2--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><!--MySQL驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>5.1.47</scope></dependency>

左上角点击maven 点击刷新。第一次使用这个依赖的话,需要等待一会它下载。
在这里插入图片描述


二、编写各个配置

根据数据库创建实体类

public class User {private int uid;private String uname;private int uage;... 构造函数 和 get set方法  方便测试看数据再来一个:toString()
}

在application.properties配置里面添加:

#注意需要修改为自己的数据库名称,我的是test。问号后面是时区的设置,防止报错spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#密码修改为自己的#mybatis-plus的日志配置,可以在控制台看到操作数据库的日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

编写dao/mapper 包
就是操作数据库的包 有些公司为dao层 有些公司根据mybatis映射写成了mapper
创建一个接口,和mybatis一样。面向接口映射动态代理

import com.baomidou.mybatisplus.core.mapper.BaseMapper;@Mapper//添加@Mapper注解(重要)
public interface UserDao extends BaseMapper<User> {//继承父接口,指定实体类  类型为User//继承了BaseMapper,里面有很多很多增删改查的方法。所以:dao层就写完了!!!!!//您也可以自己写一个方法接口,根据实际的业务场景,来补充BaseMapper里面没有的//就像这样(这个是案例,其实查询的方法。BaseMapper有很多):@Select("select * from user")public List<User> findAll();//修改@update  删除@delete  添加@insert@update(update user set uname=#{uname} where uid = #{uid})//这个父类也有的public int updateNameById(User user);  //sql语句在注解后面,语法和mybatis一模一样,如# 和 $  limit  order 。。。。等等
}

编写service/controller 包

	@Resourceprivate UserDao userDao;@GetMapping("/findAll")public List<User> findAll(){//这个selectList是BaseMapper自带的//selectList(user) 也可以传一个带了一些数据的User,它能拼接查询条件List<User> list = userDao.selectList(null); return list;//userDao是子类。里面有很多父类的方法//大家可以 : userDao.     查看提示,很多很多增删改查自带的}

在启动类里面添加注解:@MapperScan(“com.bbz.bbzspring.dao”)
指向您的dao/mapper层 的 接口包名

@SpringBootApplication
@MapperScan("com.bbz.bbzspring.dao")
public class BbzspringApplication {...
}

启动项目,运行。输入对应的GetMapping(“/findAll”)地址:
我的controller类是@RestController注解,返回数据的(上几个小节有步骤, 延续下来的)
在这里插入图片描述

总结
添加依赖
完善工程结构(实体类 和 service 和 controller)

dao/mapper层的接口
继承
mybatisplus.core.mapper.BaseMapper接口
就弄完了。BaseMapper里面有很多自带的增删改查方法

一般公司:还是需要自己写很多接口方法,因为级联操作 , 多表的映射等等,它还没有那么智能。还是要自己来写,在sql语句里面配置多表之间的连接条件啥的


三、实现增删改查

我的dao层是空的,现在用的全是BaseMapper自带的方法。dao层代码这里省略
它就一句:public interface UserDao extends BaseMapper<User>
当然还有一个@Mapper的注解在接口类上面

查询

直接使用主键查询,则需要告诉它那个成员变量是主键
在实体类里面,给主键添加一个注解

public class User {@TableIdprivate int uid;
	@GetMapping("/getUser")public User getUser(){User user = userDao.selectById(1);return user;}

在这里插入图片描述

添加

	@PostMapping("/addUser")//post提交public int getUser(User user){int number = userDao.insert(user);return number;}

在网页测试工具里面,注意修改提交方式为post,地址对应注解的值。添加了参数,id没有添加,因为是自动递增
apiPost安装及使用
在这里插入图片描述
spring框架:您直接发送前端的数据 对应 实体类成员变量的单词,自动放入数据
页面的uname 对应 实体类.uname
页面的uage 对应 实体类.uage
后端方法参数直接就 对应封好了 每一个传递过来的数据值
public int getUser(User user) 就是这个user
它自动里面有数据了,方法里面直接用就可以了
所以:为什么对应单词:如果同时有很多个字符串,单词又不对应,那么哪个放哪个呢

刷新数据库。
在这里插入图片描述

为什么要修改注解和用工具来生成不同的提交方式,哦,没事的~
您跳着看了吧~ 抠鼻/笑哭.gif手动表情
RESTful风格是什么

修改

	@PutMapping("/updateUser")  //注解是put注解了哈public int updateUser(User user){int number = userDao.updateById(user);return number;}

改了uname的一个名字,为put提交,修改了地址对应注解。
因为是修改,添加了一个参数为uid
在这里插入图片描述
刷新数据库:
在这里插入图片描述

删除

	@DeleteMapping("/deleteUser")public int deleteUser(User user){int number = userDao.deleteById(user.getUid());return number;}

在这里插入图片描述


总结

说明一下:整个这个系列实现前后分离的springboot+vue项目。序号文章一共也就10几篇,只有核心图文重点操作步骤来实现这个目标(基本上您边看边写:一个小时或者一上午就能跟着一起手搓一个前后分离项目,然后您可以自行添加功能和内容在您项目里面)

其他扩展细节知识点,本系列省略了(或者有链接)如:
mybatisPlus的特点,内部原理,管它现在用不用的上,内容全部丢进来。可能会很多很多了。当前 系列: 我们的目的是快速手搓前后分离项目 其他详细版的,请查阅帮帮志其他的文章,是有的

(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。ღ( ´・ᴗ・` )比心)
(也欢迎评论,提问。 我会依次回答~)

http://www.xdnf.cn/news/335701.html

相关文章:

  • 华为首款鸿蒙电脑正式亮相
  • 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)
  • 《供应链网络攻击的风险与防范》
  • OpenHarmony 5.0 切换已连接过的wifi切换失败
  • 普通IT的股票交易成长史--20250508晚复盘
  • python学生作业提交管理系统-在线作业提交系统
  • 搭建电商独立站跨境电商反向海淘系统的过程中网站健康运营的指标
  • 前端开发中移动端调试的日常工具整理
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.4 数据故事化呈现(报告结构设计/业务价值提炼)
  • 多线程初阶(2)
  • 【数据结构】01Trie
  • 【MySQL】存储引擎 - InnoDB详解
  • 大语言模型主流架构解析:从 Transformer 到 GPT、BERT
  • 矿井设备通信破局:ModbusTCP转DeviceNet网关应用实践
  • 【SpringMVC】详解cookie,session及实战
  • PostgreSQL 的 pg_start_backup 函数
  • VR博物馆,足不出户云逛展
  • SpringBoot+Dubbo+Zookeeper实现分布式系统步骤
  • 面向小型企业顶点项目的网络安全咨询人机协作框架
  • 自然语言到 SQL 转换:开启智能数据库交互新时代
  • C++入门小馆 :多态
  • 裸辞8年前端的面试笔记——JavaScript篇(一)
  • uniapp-文件查找失败:‘@dcloudio/uni-ui/lib/uni-icons/uni-icons.vue‘
  • Docker部署常见应用之Superset
  • Linux 网络管理 的实战代码示例
  • C27-简单选择排序法
  • Matlab B级路面激励下集中驱动、轮边驱动和主动减振车辆
  • 人工智能可信度新突破:MIT改进共形分类助力高风险医学诊断
  • 【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)
  • vite 初始化react项目