业务代码的方式 (实现的方式,书写业务逻辑的java代码实现)
------查询学生所在班级的信息 (一对一查询)
1、先把所有学生查询出来(clazzno)
select* from student
2、拿着clazzno去clazz表中查询班级的信息
select * from clazz where cno=?
------查询班级中所有学生的信息(一对多查询)
1、查询所有班级的信息(clazzno)
Select * from clazz
2、查询指定班级中的所有学生—List
Select * from student where clazzno=?
特点:
班级和学生之间的关系全部是靠我们书写java业务逻辑代码的方式实现的
最后执行完成SQL语句都执行了N+1次数据的查询

接口
ClazzMapper.java

public interface ClazzMapper {//查询指定学生所在班级的信息Clazz  selectOne(int clazzno);//查询所有班级信息List<Clazz>  selectAll();
}

StudentMapper.java

public interface StudentMapper {//查询所有学生的操作List<Student>  selectAll();List<Student>  selectMore(int clazzno);
}

XML
ClazzMapper.xml

    <select id="selectOne" resultType="clazz">SELECT  *  from  clazz  where  clazzno=#{param1}</select><select id="selectAll" resultType="clazz">SELECT  *  from  clazz</select>

StudentMappe.xml

<select id="selectAll"  resultType="student">SELECT  * from   student</select><select id="selectMore" resultType="student">SELECT  *  from  student  where  clazzno=#{param1}</select>

测试

//查询所有学生所在的班级的信息/* //[A]查询所有学生-->clazznoList<Student> list = stuMapper.selectAll();//[B]拿着clazzno去班级表中查询班级的信息for(Student  stu:list){//每一个学生所在班级的编号Integer clazzno = stu.getClazzno();Clazz clazz = claMapper.selectOne(clazzno);stu.setCla(clazz);System.out.println(stu);}*///查询所有班级中学生的信息//[A]查询所有班级的信息List<Clazz> claList = claMapper.selectAll();//[B]查询班级中对应的学生的信息for(Clazz  cla:claList){//班级编号Integer clazzno = cla.getClazzno();//指定班级中所有学生的集合List<Student> list = stuMapper.selectMore(clazzno);cla.setLi(list);System.out.println(cla);}

MyBatis中多表查询(业务代码方式)相关推荐

  1. MyBatis中多表查询(N+1方式)

    N+1查询方式 [1]什么是N+1的查询方式 如果没有N+1的方式我们想要实现多表的查询,自己书写查询的业务逻辑代码(java) mybatis希望通过自己标签配置的方式来解决这个问题 [2]执行的操 ...

  2. MyBatis中多表查询(多表查询语句实现)重点

    –查询所有学生所在班级的信息(一对一) –班级查询学生的操作(一对多) –遇到的问题: 查询的SQL语句非常的简单,但是如何把查询的数据接受这个就是一个问题 [1]把每一个实体中的字段拿出来组建成一个 ...

  3. 【Mybatis】MyBatis 实现多表查询

    大纲 Auto Mapping 单表实现(别名方式) <resultMap>实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 准备:创 ...

  4. MyBatis 实现多表查询、resultMap 标签、MyBatis 注解、mybatis运行原理

    内容 Auto Mapping 单表实现(别名方式) 实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 一.MyBatis 实现多表查询 Myba ...

  5. MyBaties中多表查询及数据库左连接、右连接、内连接、全连接笔记

    本文最终目的是介绍MyBaties中多表查询方法,最难的就是多对多的查询方式,在此之前咱们先一起复习一下数据库的两表间的连接方式. 数据库表连接方式 数据库两个表之间有四种连接方式,其中包括左连接.右 ...

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

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

  7. 【MyBatis】多表查询

    MyBatis的多表查询 表之间的关系:一对多,多对一,一对一,多对多. 一对多:一个班级对应多个学生 多对一:多个学生对应一个班级 一对一:一个人对应一个身份证号码 多对多:一个订单可以有多个商品, ...

  8. Mybatis连3表查询数据resultMap结果映射

    Mybatis连结3表查询数据resultMap结果映射 一.前言 Mybatis实现了sql与java代码的分离,达到了解耦合的目的,配置sql语句时有个resultType="" ...

  9. [转]Joomla! 1.5中form表单的实现方式

    原文链接:Joomla! 1.5中form表单的实现方式 Joomla! 1.5中JParameter不但提供了一个xml 和ini文件读取和访问的方式,同时它提供了一个render函数,这个rend ...

最新文章

  1. CTFshow php特性 web103
  2. 利用CentOS快速构建自己的发行版(3)
  3. C/C++结构体struct 与结构体数组和枚举型enum的结合使用
  4. 面试题——4种数组去重的方法
  5. java enum类探索
  6. zookeeper集群搭建和API使用
  7. 利用Python进行数据分析--数据加载、存储与文件格式
  8. 设计模式(Java)—Facade模式
  9. 读取txt文件(字符串内容),分割数组,存入Map
  10. android后台前台切换,Android 把后台应用切换到前台
  11. Qt使用资源管理器打开指定本地文件夹
  12. Timer定时器用法详解
  13. 【Unity3D】Tank大战
  14. 微信小程序账号注册初始化环境搭建
  15. 如何优化一个网站的完整方案-SEO
  16. null hypothesis
  17. SpringBoot 接口数据加解密实战
  18. 网狐卓越版本内核引擎、卓越内核(源码,源码,源码)
  19. 全国22家奶粉企业69批次产品检出三聚氰胺
  20. 介绍计算机专业说明文,介绍电脑的说明文作文

热门文章

  1. mysql递归查询 缓存_MySQL-递归查询方法解析
  2. mysql边备份边导入么_MySQL 怎么导入导出操作
  3. mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用
  4. Java修炼之路——基础篇——数据类型
  5. CF372D. Choosing Subtree is Fun
  6. cf246E. Blood Cousins Return
  7. P6669 [清华集训2016] 组合数问题
  8. 博弈论(基础概念+例题)
  9. P1993 小 K 的农场
  10. [SDOI2019] 热闹的聚会与尴尬的聚会