MyBatis中多表查询(业务代码方式)
业务代码的方式 (实现的方式,书写业务逻辑的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中多表查询(业务代码方式)相关推荐
- MyBatis中多表查询(N+1方式)
N+1查询方式 [1]什么是N+1的查询方式 如果没有N+1的方式我们想要实现多表的查询,自己书写查询的业务逻辑代码(java) mybatis希望通过自己标签配置的方式来解决这个问题 [2]执行的操 ...
- MyBatis中多表查询(多表查询语句实现)重点
–查询所有学生所在班级的信息(一对一) –班级查询学生的操作(一对多) –遇到的问题: 查询的SQL语句非常的简单,但是如何把查询的数据接受这个就是一个问题 [1]把每一个实体中的字段拿出来组建成一个 ...
- 【Mybatis】MyBatis 实现多表查询
大纲 Auto Mapping 单表实现(别名方式) <resultMap>实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 准备:创 ...
- MyBatis 实现多表查询、resultMap 标签、MyBatis 注解、mybatis运行原理
内容 Auto Mapping 单表实现(别名方式) 实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 一.MyBatis 实现多表查询 Myba ...
- MyBaties中多表查询及数据库左连接、右连接、内连接、全连接笔记
本文最终目的是介绍MyBaties中多表查询方法,最难的就是多对多的查询方式,在此之前咱们先一起复习一下数据库的两表间的连接方式. 数据库表连接方式 数据库两个表之间有四种连接方式,其中包括左连接.右 ...
- mybatis一对多关联查询两种方式
mybatis一对多关联查询两种方式 前提: 方式一: 方式二: 前提: 现在有两张表,学生表跟教师表,一个教师对应多个学生 教师表: CREATE TABLE `teacher` (`id` int ...
- 【MyBatis】多表查询
MyBatis的多表查询 表之间的关系:一对多,多对一,一对一,多对多. 一对多:一个班级对应多个学生 多对一:多个学生对应一个班级 一对一:一个人对应一个身份证号码 多对多:一个订单可以有多个商品, ...
- Mybatis连3表查询数据resultMap结果映射
Mybatis连结3表查询数据resultMap结果映射 一.前言 Mybatis实现了sql与java代码的分离,达到了解耦合的目的,配置sql语句时有个resultType="" ...
- [转]Joomla! 1.5中form表单的实现方式
原文链接:Joomla! 1.5中form表单的实现方式 Joomla! 1.5中JParameter不但提供了一个xml 和ini文件读取和访问的方式,同时它提供了一个render函数,这个rend ...
最新文章
- CTFshow php特性 web103
- 利用CentOS快速构建自己的发行版(3)
- C/C++结构体struct 与结构体数组和枚举型enum的结合使用
- 面试题——4种数组去重的方法
- java enum类探索
- zookeeper集群搭建和API使用
- 利用Python进行数据分析--数据加载、存储与文件格式
- 设计模式(Java)—Facade模式
- 读取txt文件(字符串内容),分割数组,存入Map
- android后台前台切换,Android 把后台应用切换到前台
- Qt使用资源管理器打开指定本地文件夹
- Timer定时器用法详解
- 【Unity3D】Tank大战
- 微信小程序账号注册初始化环境搭建
- 如何优化一个网站的完整方案-SEO
- null hypothesis
- SpringBoot 接口数据加解密实战
- 网狐卓越版本内核引擎、卓越内核(源码,源码,源码)
- 全国22家奶粉企业69批次产品检出三聚氰胺
- 介绍计算机专业说明文,介绍电脑的说明文作文
热门文章
- mysql递归查询 缓存_MySQL-递归查询方法解析
- mysql边备份边导入么_MySQL 怎么导入导出操作
- mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用
- Java修炼之路——基础篇——数据类型
- CF372D. Choosing Subtree is Fun
- cf246E. Blood Cousins Return
- P6669 [清华集训2016] 组合数问题
- 博弈论(基础概念+例题)
- P1993 小 K 的农场
- [SDOI2019] 热闹的聚会与尴尬的聚会