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的电商知识,可以点个关注,共同交流。ღ( ´・ᴗ・` )比心)
(也欢迎评论,提问。 我会依次回答~)