博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis 学习记录(4.1)—— 级联查询(无 association 和 collection)
阅读量:2059 次
发布时间:2019-04-29

本文共 1557 字,大约阅读时间需要 5 分钟。

版权声明:版权声明:尊重他人劳动成果,转载请注明出处:

1. 先前介绍

本文是对 mybatis 级联操作最简单操作的介绍,如果想要了解有关 association 和 collection 内容的话,可以移步到这篇文章进行阅读。

1.1 数据库关系:

  • teacher 表有 id,name 字段

这里写图片描述

  • stu 表有 id,name,t_id 字段。其中 t_id 为外键字段。

这里写图片描述

1.2 bean 代码

bean 之间的关系:一名老师可以有多名学生

  • Student.java
public class Student {    private Integer id;    private String name;    private Teacher teacher;    // 省略 get/set 方法}
  • Teacher.java
public class Teacher {    private String name;    private Integer id;    private List
studentList; // 省略 get/set 方法}

2. 一对多查询

关键代码:

@Testpublic void main() throws Exception {    OneToManyDao oneToManyDao = new OneToManyDao();    oneToManyDao.testFindByName("t1");}/** * 根据老师名字,查询该老师的所有学生 * @param name 老师名字 * @return 该老师的所有学生 * @throws Exception */public List
testFindByName(String name) throws Exception { SqlSession sqlSession = getSession().openSession(); return sqlSession.selectList(stuDaoNameSpace+ ".findByName", name);}

映射文件(studentMapper.xml)

小提示 1:这里为什么要写成 resultMap="StudentMap" 呢?

回答:这是由下面的 SQL 查询返回的结果决定的。本 SQL 需要返回 stu 表的 id 和 name 字段。那么我们就需要将找到一个对象来接收 SQL 返回的字段。而在 resultMap 标签中,正好封装了这两个字段,因此我们可以这么写。

另外需要补充的是:如果表字段名和对应 bean 属性名一样的话,可以使用 resultType="com.czd.mybatis02.bean.Student" 代替上面的 resultMap="StudentMap"在这里使用 resultMap 的目的就是为了解决表字段名和对应 bean 属性名不一致,导致无法通过反射将彼此成功映射的问题。

resultType 和 resultMap 是不能同时存在的。

输出结果:

这里写图片描述

从上图我们可以看出 SQL 成功执行并且影响了两条记录。(即查询到了两条符合要求的记录)

你可能感兴趣的文章
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>
JAVA多线程之volatile 与 synchronized 的比较
查看>>
Java集合框架知识梳理
查看>>
笔试题(一)—— java基础
查看>>
Redis学习笔记(二)— 在linux下搭建redis服务器
查看>>
Redis学习笔记(三)—— 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
查看>>
Intellij IDEA使用(一)—— 安装Intellij IDEA(ideaIU-2017.2.3)并完成Intellij IDEA的简单配置
查看>>
Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
查看>>
Intellij IDEA使用(三)——在Intellij IDEA中配置Tomcat服务器
查看>>
Intellij IDEA使用(四)—— 使用Intellij IDEA创建静态的web(HTML)项目
查看>>
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>