直接上代码

Teacher

@Data
public class Teacher {private int id;private String name;
}

student

@Data
public class Students {private int id;private String name;Private int tid;            //teacher的id值@TableField(exist = false)  //数据库中是无此字段的,MP中要排除掉private Teacher teacher;    //关联属性teacher
}

接口

//TeacherMapper继承BaseMapper即可,其中没有关联属性,直接使用MP提供的方法
@Mapper
@Component
public interface TeacherMapper extends BaseMapper<Teacher> {}
@Mapper
@Component
public interface StudentMapper extends BaseMapper<Student> {//sql中有 ${ew.customSqlSegment} wrapper不能为null//Constants.WRAPPER枚举字符,其值为 "ew"//其中 tid 对应是数据库的字段名,不是对象里的属性名@Results({@Result(column = "tid",property = "teacher",one = @One(select = "com.*.*.mapper.TeacherMapper.selectById"))})@Select("select * from student ${ew.customSqlSegment} ")List<student> selectStudentListWrapperNotNull(@Param(Constants.WRAPPER)Wrapper<Customer> wrapper);//wrapper为null的情况下,查询全部记录//其中 tid 对应是数据库的字段名,不是对象里的属性名@Results({@Result(column = "tid",property = "teacher",one = @One(select = "com.*.*.mapper.TeacherMapper.selectById"))})@Select("select * from student")List<student> selectStudentListWrapperNull();
}

1对多使用的是many


@Service
public class StudentServiceImpl implements StudentService {@AutowiredStudentMapper studentMapper = null;@Overridepublic List<Student> selectStudentList (Wrapper<Student> wrapper) {if (wrapper != null) {return studentMapper.selectStudentListWrapperNotNull(wrapper);} else {return studentMapper.selectStudentListWrapperNull();}}

测试类

@AutowiredStudentService studentService = null;@Testvoid contextLoads() {//null为空,查询所有记录List<Student> list1 = studentService.selectStudentList(null);list1.forEach(System.out::println);//null不为空,条件查询List<Student> list2 = studentService.selectStudentList(Wrappers.<Student>lambdaQuery().orderByDesc(Student::getId()));list2.forEach(System.out::println);
}

参考文章:https://blog.csdn.net/u011573295/article/details/103491321

不写xml的MyBatis-Plus中关联属性的查询(1对1,1对n)相关推荐

  1. springboot log4j2.xml读取application.yml中的属性值

    注意:部份代码太长,可以通过文末的图片快速查看对应位置 项目需求 用户想自己配置日志存放的位置,因此我们需要满足提供可以配置的文件,用以满足用户的需求. 因此,我们主要通过 log4j2.xml 来读 ...

  2. Android -- 写xml到SD卡中

    信息类                                                                                          private ...

  3. 下载并在Eclipse中关联Android源代码

    大家都知道文档写的好当然让人非常舒服,可是有时候文档再好也不如直接看源代码来的直接,既然Android是开源的,为什么不在eclipse里直接看它的源代码呢? 1.下载源代码 这部分网上有大量的资料, ...

  4. mybatis 多表关联查询_Java修行第041天--MyBatis框架(下)--多表查询

    1 解决列名和属性名不一致问题 如果查询时使用 resultType 属性, 表示采用 MyBatis 的Auto-Mapping(自动映射)机制, 即相同的列名和属性名会自动匹配. 因此, 当数据库 ...

  5. mybatis一对多关联查询两种方式

    mybatis一对多关联查询两种方式 前提: 方式一: 方式二: 前提: 现在有两张表,学生表跟教师表,一个教师对应多个学生 教师表: CREATE TABLE `teacher` (`id` int ...

  6. rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...

  7. mybatis 配置_MyBatis教程3:优化MyBatis配置文件中的配置

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置 ...

  8. mybatis一对多关联 创建_MyBatis多对多关联查询(级联查询)

    其实,MyBatis 没有实现多对多级联,这是因为多对多级联可以通过两个一对多级联进行替换. 例如,一个订单可以有多种商品,一种商品可以对应多个订单,订单与商品就是多对多的级联关系,使用一个中间表(订 ...

  9. MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    2019独角兽企业重金招聘Python工程师标准>>> 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  10. mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析

    推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...

最新文章

  1. 1001: 整数求和
  2. 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
  3. 终身成长究竟有多重要?
  4. sqlite在c++中的使用方法
  5. 开发日记-20190404
  6. Effective Java之使可变性最小(十五)
  7. java map判断是否有键_检查Java HashMap中是否存在给定键
  8. Error when loading the SDK:解决方案
  9. LinkedHashMap转对象
  10. 主窗口刷新,子窗口闪烁
  11. jtopo node.text换行_jTopo学习笔记1
  12. 【深度学习】梯度消失与梯度爆炸的原因分析与解决策略
  13. 【大数据】Hadoop生态系统及其组件
  14. vue表单校验,根据某选项追加或去掉校验
  15. 抖音壁纸小程序源码最新版,支持达人入驻和多端发布
  16. 山西3件国宝春节期间亮相《国家宝藏》
  17. 硬盘坏了,如何检测与修复。
  18. 《名利场》:微软 “ 失落的十年”
  19. 目标检测:python实现多种图像数据增强的方法(光照,对比度,遮挡,模糊)
  20. 微信小程序免费http转https

热门文章

  1. 美式期权损益图matlab,期权损益图的画法
  2. Java数据结构:双向链表Double Linked List基础笔记
  3. python web框架的基础:WSGI、uWSGI、Nginx、web框架的关系
  4. 【浙江省第16届省赛J:】Welcome Party(并查集+优先队列bfs遍历)
  5. 用关键字搜索c语言,c语言-以关键字搜索程序
  6. 多模块顺序_广东省考行测时间如何分配?答题顺序的建议?
  7. java.util.list包_Java的Util包总结
  8. java sec_java.security文件
  9. 自动驾驶 6-4 高级转向控制 - MPC Advanced Steering Control - MPC
  10. 算法:匹配有效的括号20. Valid Parentheses