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

#王者杯·14天创作挑战营·第1期#

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

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

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



本文章是系列文章,技术栈内容为:【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 包

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

SpringBootMybatisPlus是常用的Java开发框架,可以方便地进行数据库操作,包括增删改查操作。 对于两个表的增删改查操作,首先需要配置好MybatisPlus的相关配置,包括数据源的配置以及实体类和Mapper接口的映射关系。 在SpringBoot的主程序中,我们需要使用@MapperScan注解来扫描Mapper接口所在的包路径。比如在上述代码中,我们使用@MapperScan("com.example.boot.mapper")来扫描com.example.boot.mapper包下的Mapper接口。 对于两个表的增删改查操作,我们需要在Service接口中定义相应的方法,并使用MybatisPlus提供的IService接口来继承。比如在上述代码中,我们可以在StudentService接口中定义增删改查方法。 在ServiceImpl类中,我们需要使用@Service注解来标识该类为Service组件,并在类上使用泛型指定Mapper接口和实体类的类型。这样就可以使用MybatisPlus提供的方法来实现对数据库增删改查操作。 具体的代码实现可以参考下面的示例: 1. 查询数据: ```java List<Student> students = studentService.list(); ``` 2. 插入数据: ```java Student student = new Student(); student.setName("张三"); student.setAge(18); studentService.save(student); ``` 3. 更新数据: ```java Student student = studentService.getById(1L); student.setName("李四"); studentService.updateById(student); ``` 4. 删除数据: ```java studentService.removeById(1L); ``` 需要注意的是,以上只是示例代码,具体的实现还需要根据自己的业务需求进行适当的修改。同时,还需要确保数据库连接正常,并且表结构和实体类的映射关系正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值