springboot整合mybatis-plus基于纯注解实现一对一(一对多)查询

本文介绍了如何在SpringBoot项目中,结合Mybatis-Plus通过注解方式实现一对一查询。由于Mybatis-Plus当前版本不完全支持实体类上的关系映射,作者通过@Results、@Result、@One等Mybatis注解,结合BaseMapper和QueryWrapper来实现一对一关联查询。详细展示了Student和StudentClass的实体类、Mapper接口以及测试代码,期望Mybatis-Plus未来能完善注解支持。
摘要由CSDN通过智能技术生成

因为目前所用mybatis-plus版本为3.1.1,感觉是个半成品,所有在实体类上的注解只能支持单表,没有一对一和一对多关系映射,且该功能还在开发中,相信mybatis-plus开发团队在不久的将来应该会实现此功能。

由于本人开发习惯的原因,实在是太讨厌大量的xml充斥在整个项目中,尤其是表的mapper.xml,虽然有代码生成器可以生成,但是有些复杂的查询还是需要手写配置文件里的动态sql,这点比较反感(至于为什么反感,也是有多方面原因的)。

不过可能是大量的java开发人员已经被虐惯了,已经习惯各种配置文件,虽然有代码生成器,但是本人觉得,这种不是真正的路子,按理说开源出去的东西让别人用的越简单越爽越好,而不是还需要依赖大量的工具配合才能使用(这个观点仁者见仁智者见智吧)。

因为本人采用的是spring-boot进行开发,本身springboot就提倡采用不用配置自动配置的方式,所以真心希望mybatis(不是mybatis-plus)这点需要继续努力。

基于这点,采用了mybatis-plus里的已经实现好的方法来进行了取巧的操作,废话不多说,直接上代码。

数据库是mysql。

demo的思路是这样的:学生表(Student),学生班级表(StudentClass),在学生的实体类里通过班级Id和班级进行一对一关联,主要通过mapper接口来实现,基于@Results、@Result、@One(或@Many)、@ResultMap这几个mybatis里的注解加上

mybatis-plus里的BaseMapper、QueryWrapper<ChannelEntity>结合起来实现,所以还得写一些代码。

如果mybatis-plus团队把关系映射一并实现注解到实体对象上就能省大量代码了,期待他们早日实现。

pom文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.1.4.RELEASE</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.lyb</groupId>
12     <artifactId>spring-mybatis-demo</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <packaging>jar</packaging>
15     <name>spring-mybatis-demo</name>
16     <description>Demo project for Spring Boot</description>
17 
18     <properties>
19         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
21         <java.version>1.8</java.version>
22     </properties>
23 
24     <dependencies>
25         <!--
26         <dependency>
27             <groupId>org.mybatis.spring.boot</groupId>
28             <artifactId>mybatis-spring-boot-starter</artifactId>
29             <version>2.0.0</version>
30         </dependency>
31         -->
32 
33         <dependency>
34             <groupId>com.baomidou</groupId>
35             <artifactId>mybatis-plus-boot-starter</artifactId>
36             <version>3.1.1</version>
37         </dependency>
38 
39         <dependency>
40             <groupId>org.projectlombok</groupId>
41             <artifactId>lombok</artifactId>
42             <version>1.18.8</version>
43             <scope>provided</scope>
44         </dependency>
45 
46         <dependency>
47             <groupId>com.baomidou</groupId>
48             <artifactId>mybatis-plus</artifactId>
49             <version>3.1.1</version>
50         </dependency>
51 
52         <dependency>
53             <groupId>mysql</groupId>
54
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值