MyBatis 中两表关联查询MYSQL

1、创建数据库表语句

2、插入测试数据

3、pom文件内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis01"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- jack.zhao 加载映射文件 -->
<mapper resource="com/mybatis03/mapper/personMapper.xml"/>
<mapper resource="com/mybatis03/mapper/TeacherMapper.xml"/>
</mappers>
</configuration>

4、实体类

4.1教师表对应的实体类

package com.mybatis03.bean;

/**
* @author :jack.zhao
* @description 教师实体类
* @date :2021-10-16 22:55
*/
public class Teacher { /* 教师编号 */
private int teaNo;
/* 课程编号 */
private int courseNo;
/* 教师名称 */
private String teaName; public int getCourseNo() {
return courseNo;
} public void setCourseNo(int courseNo) {
this.courseNo = courseNo;
} public int getTeaNo() {
return teaNo;
} public void setTeaNo(int teaNo) {
this.teaNo = teaNo;
} public String getTeaName() {
return teaName;
} public void setTeaName(String teaName) {
this.teaName = teaName;
}
}

4.2 教师课程实体类

package com.mybatis03.bean;

/**
* @author :jack.zhao
* @Describe: 教师课程类
* @date :2021-10-16 22:55
*/
public class TeacherCourse { /* 课程编号 */
private int courseNo;
/* 课程名称 */
private String courseName; public int getCourseNo() {
return courseNo;
} public void setCourseNo(int courseNo) {
this.courseNo = courseNo;
} public String getCourseName() {
return courseName;
} public void setCourseName(String courseName) {
this.courseName = courseName;
} }

4.3 教师实体类与课程实体类总的集合类(用于关联数据库表查询结果集)

package com.mybatis03.bean;

/**
* @author :jack.zhao
* @description 此类包含教师和课程属性
* @date :2021-10-16 22:55
*/
public class TeacherBusiness extends Teacher { public TeacherBusiness(){
super();
} /* 课程编号 */
private int courseNo;
/* 课程名称 */
private String courseName; public int getCourseNo() {
return courseNo;
} public void setCourseNo(int courseNo) {
this.courseNo = courseNo;
} public String getCourseName() {
return courseName;
} public void setCourseName(String courseName) {
this.courseName = courseName;
} @Override
public String toString() {
return "TeacherBusiness{" +
"courseNo=" + courseNo +
", courseName='" + courseName +
", teacherName='" + this.getTeaName() +
", teacherNO='" + this.getTeaNo() + '\'' +
'}';
} }

5、测试类

package com.mybatis03.test;

import com.mybatis03.bean.TeacherBusiness;
import com.mybatis03.mapper.TeacherMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test; import java.io.Reader;
import java.util.List; /**
* @author :jack.zhao
* @Describe: 测试
* @date :2021-10-16 22:55
*/
public class testTeacher01 { @Test
public void queryTeacherBusinessInfoWithCourseNo() throws Exception{
Reader reader = Resources.getResourceAsReader("mybatis-03.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession();
int courseNo=1002; // (jack.zhao)动态代理
TeacherMapper personMapper = session.getMapper(TeacherMapper.class);
List<TeacherBusiness> teacherBusinessList = personMapper.queryTeacherBusinessInfoWithCourseNo(courseNo);
System.out.println("联合查询结果为:"+teacherBusinessList);
}
}

6、执行测试结果

MyBatis 中两表关联查询MYSQL (14)的更多相关文章

  1. oracle 两表关联查询

      oracle 两表关联查询 CreationTime--2018年7月4日17点27分 Author:Marydon 情景描述 查询学生表student,sname,sex,age信息及所在班级c ...

  2. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  3. Mybatis中多表关联时,怎么利用association优雅写resultMap来映射vo

    前言 有好一阵没碰mybatis了,这次的项目基于性能考虑,选了mybatis,写着写着,发现有下面的需求,比如两表联查,取其中各一部分字段,怎么更方便地用vo来接,这里犯了难: 我想的是,因为这个s ...

  4. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

  5. SQL 两表关联查询 where 条件中等号两端字段顺序对效率的影响

    现有两表A(大).B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B. ...

  6. Mybatis【15】-- Mybatis一对一多表关联查询

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-11-one2one,需要自取,需要配置maven ...

  7. MyBatis之多表关联查询

    1使用resultType.ResultMap处理返回结果 处理返回结果 resultType:指定返回值结果的完全限定名,处理多表查询的结果. 多表查询需要定义vo封装查询的结果. 需求:查询部门和 ...

  8. Yii2中多表关联查询(join、joinwith)

    我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order      (id  order_name ...

  9. [moka同学笔记]Yii2中多表关联查询(join、joinwith) (摘录)

    表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_name       cu ...

随机推荐

  1. centos7 shell 计算器 bc 命令

    2021-08-03 1. 安装 yum -y install bc 2. 简介 bc 命令是任意精度计算器语言,通常在 linux 下当计算器使用 类似基本的计算器, 使用这个计算器可以做基本的数学 ...

  2. ELK数据迁移,ES快照备份迁移

    通过curl命令或者kibana快照备份,恢复的方式进行数据迁移 环境介绍 之前创建的ELK 因为VPC环境的问题,需要对ELK从新部署,但是还需要保留现有的数据,于是便有了这篇文档. 10.0.20 ...

  3. K8S资源编排(yaml)

    1.yaml的格式 2.yaml的组成部分 3.yaml常用字段的含义 4.yaml编写方式 (1)方式一:使用kubectl create命令生成yaml文件,然后修改 (2)方式2:在已经部署好的 ...

  4. NOIP模拟38:b

      这是T2.   一个容斥(其实也可以欧拉反演做,但是我不会).   首先开一个桶,记录第i行的j有多少个.   然后枚举1-\(maxn\),枚举他的值域内的倍数,记录倍数在第i行有多少个,将个数 ...

  5. Identity用户管理入门六(判断是否登录)

    目前用户管理的增删改查及登录功能已经全部实现,但存在一个问题,登录后要取消登录按钮显示退出按钮,未登录应该有注册按钮,现实现过程如下 一.Startup.cs中增加服务 app.UseAuthenti ...

  6. dotnet 读 WPF 源代码笔记 渲染收集是如何触发

    在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GF ...

  7. .Net 如何修改 HttpHeaders 中的 Content-Disposition

    最近在看一些.Net5的内容,于是就想将之前Spring写的一个项目迁移到.Net上来看看. 不得不说.Net这几年发展的确实挺好的,超快的启动速度,极佳的性能让它一点不比Java差,但确实在国内生态 ...

  8. json包中的Marshal&Unmarshal 文档译本

    Marshal func Marshal(v interface{})([]byte, error) Marshal returns the JSON encoding of v. Marshal返回 ...

  9. JavaScrip中 Array.reduce()

    数组的方法 reduce() reduce方法在数组的每一项元素上都会执行回调函数. 语法:array.reduce( callBack [ , init]  ) // 语法arrary.reduce ...

  10. Centos 6.8 系统下安装RabbitMQ方法

    一,安装 RabbitMQ 首先要先安装 erlang 1,到erlang官网下载 OTP 19.0 Source File 2,解压 tar zvxf otp_src_19.0.tar.gz 3,c ...