Mybatis-plus 双主键的实现示例

 更新时间:2024年05月07日 09:35:34   作者:0000it_  
本文主要介绍了Mybatis-plus 双主键的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、首先引入依赖

在Maven工程下的pom.xml文件引入这两个依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.jeffreyning</groupId>
            <artifactId>mybatisplus-plus</artifactId>
            <version>1.5.1-RELEASE</version>
        </dependency>

二、在启动类中添加@EnableMpp标签

package com.GradeSystem.app;

import com.github.jeffreyning.mybatisplus.conf.EnableMPP;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// web工程的启动类 该类启动一个内置的tomcat服务器
@SpringBootApplication  //启动web服务器的注解标签
@MapperScan("com.GradeSystem.app.dao")
@EnableMPP
public class SpringBootApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootApp.class);//启动内置tomcat服务器
    }
}

三、在实体类中添加@MppMultiId标签和@TableField

package com.GradeSystem.app.bean;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 功能:
 * 作者:jiaping
 * 日期:2023/9/5 20:48
 **/
@Data //注解标签在类的头部编写,生成get set 无参数一有参数和其它的方法
@AllArgsConstructor  //会自动生成有参数构造函数
@NoArgsConstructor //会生成无参构造函数
public class Grade  implements Serializable {
    @MppMultiId
    @TableField(value = "stuid")
    private String stuid; // 学生学号
    @MppMultiId
    @TableField(value = "counum")
    private  String counum;//课程序号
    private  String classid;//行政班级
    private  Float ordinaryscore;//平时成绩
    private  Float labscore;//实验成绩
    private  Float finalscore;//期末成绩
    private  Float finalgrade;//总评成绩
    private  String gradepoint;//绩点

    private  String pass;//是否通过
    private  String stus;//状态
    private  String resitgrade;//补考成绩
    @TableField(exist = false) //非数据库字段
    private  String stuname;//学生姓名

}

四、在控制器类中添加复合主键操作,批量更新

/**
 * 功能:
 * 作者:jiaping
 * 日期:2023/9/5 20:54
 **/
@Api(tags = "成绩表")
@RestController //具备请求和相应功能
@RequestMapping("/grade")
@CrossOrigin //跨域访问
public class GradeController {
    @Autowired
    private GradeService gradeService;


    @PostMapping("/batchSave")
    public CommonResult batchSave(@RequestBody List<Grade> product) {
        // 进行批量保存操作,例如批量保存到数据库
        return CommonResult.success(gradeService.saveOrUpdateBatchByMultiId(product));
    }


}

五、Mapper或者Dao类继承@MppBaseMapper

@Repository //表示这是数据访问层标签,意思就是将数据存储到数据库中,是springboot他的语义化注解标签
public interface GradeDao extends MppBaseMapper<Grade> {
   
}

六、Service和ServiceImpl类继承IMppService和MppServiceImpl

public interface GradeService extends IMppService<Grade> {
  
}
@Service
public class GradeServiceImpl extends MppServiceImpl<GradeDao, Grade> implements GradeService {
    @Autowired //用来实例化对象
    private GradeDao gradeDao;

   
}

七、问题解决:

458c654eceea41278539e7e0b57c48a7.png

出现这种错误,大概率是第一步加入的依赖版本冲突导致,mybatisplus-plus的版本1.5.1不要和mybatis-plus-boot-starter的版本3.5.2一起使用,更换为3.4.0

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.jeffreyning</groupId>
            <artifactId>mybatisplus-plus</artifactId>
            <version>1.5.1-RELEASE</version>
        </dependency>

到此这篇关于Mybatis-plus 双主键的实现示例的文章就介绍到这了,更多相关Mybatis-plus 双主键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • IDEA在plugins里搜不到mybatisx插件的解决方法

    IDEA在plugins里搜不到mybatisx插件的解决方法

    本文主要介绍了IDEA在plugins里搜不到mybatisx插件的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java static关键字详细解析

    Java static关键字详细解析

    这篇文章主要介绍了Java static关键字详细解析,java中的static关键字主要用于内存管理,可以用在变量、方法、代码块和嵌套类中。更多相关介绍,需要的小伙伴可以参考一下
    2022-08-08
  • Spring中@Qualifier注解的用法

    Spring中@Qualifier注解的用法

    但凡有点开发经验,多多少少可能都遇到过@Qualifier注解的使用场景,本文主要介绍了Spring中@Qualifier注解的用法,感兴趣的可以了解一下
    2023-11-11
  • 使用stream的Collectors.toMap()方法常见的问题及解决

    使用stream的Collectors.toMap()方法常见的问题及解决

    这篇文章主要介绍了使用stream的Collectors.toMap()方法常见的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java中三种简单注解介绍和代码实例

    Java中三种简单注解介绍和代码实例

    这篇文章主要介绍了Java中三种简单注解介绍和代码实例,本文讲解了Override注解、Deprecated注解、Suppresswarnings注解、元注解等内容,需要的朋友可以参考下
    2014-09-09
  • redis 获取 list 中的所有元素操作

    redis 获取 list 中的所有元素操作

    这篇文章主要介绍了redis 获取 list 中的所有元素操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 修改maven项目端口号的方法

    修改maven项目端口号的方法

    今天小编就为大家分享一篇修改maven项目端口号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • java实现服务器巡查的代码

    java实现服务器巡查的代码

    接到上级领导任务,需要实现一个这样的需求,一大批服务器,需要检查服务器能否ping通,ssh密码是否正常,以及检查服务器的cpu,内存,硬盘占用情况,下面通过java代码实现服务器巡查功能,需要的朋友一起看看吧
    2021-12-12
  • Go Java算法之外观数列实现方法示例详解

    Go Java算法之外观数列实现方法示例详解

    这篇文章主要为大家介绍了Go Java算法外观数列实现的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • list的4种遍历方式(实例讲解)

    list的4种遍历方式(实例讲解)

    下面小编就为大家带来一篇list的4种遍历方式(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论