一.使用mybatis的基本步骤

1.导入jar包

2.配置文件

3.使用配置文件完成操作

二.实战演习

需求:教师表里有教师id和教师姓名 学生表里有学生id,姓名,年龄,教师id

一个教师有多个学生,一个学生只有一个教师,现在需要显示学生表的学生信息和教师姓名

1.导入jar包

2.导入配置文件,mybatis和log4j都是写了一次以后随便用

这些都是写死了的,直接配好即可

三.开始多表联查

1.业务装配方式,分为两步,

1.1查询所有的学生,

1.2根据学生的tid得到教师的信息存入学生类中

得到结果为

完成.这是简化版的,直接在test类中显示得到的数据,本来应该写在业务层,传给控制层,在视图层显示

2.ResultMapper n+1方式

上面的写法很好理解,但是很繁琐,需要写两遍sql语句

而使用ResultMapper 可以在查询student时跳转至查询teacher语句.一句搞定

用到的类有Teacher中的selTeaByTid Student类中的selStuRm.其意义为,查询所有学生,根据注入的属性跳转到根据tid查询所有的教师,association标签表示学生和老师是一对一关系.学生是主语.

如果是根据教师来查学生,就是一对多关系,使用的标签就是collection.意义都是一样的,就是带着值跳转到执行语句

这个方法其实也使用了两句sql语句

还是两次单表查询,访问数据库2次

3.联合查询

其实和上面一样,只是sql语句不再是单表查询了,而是双标联查.ResultMapper也不再是跳转,而是将两个表都拿来做操作

在association内再添加联合查询的另一个表.得到相同的结果

回过头来看,ResultMapper n+1方式不如业务装载方式直观,不如联合查询访问次数少,是个中间的存在

在sql语句使用熟练的情况下,还是选联合查询好...

jpi多表联查_使用mybatis进行多表联查相关推荐

  1. jpi多表联查_使用Mybatis进行多表联查操作

    (1)增加一个测试数据库shop_order,sql语句如下: CREATE DATABASE`shop_order`;USE`shop_order`;CREATE TABLE`t_user` ( ` ...

  2. mysql水果表查询_最全MySQL数据库表的查询操作

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  3. mysql 复制表耗时_聊一下mysql的表复制

    1 insert...from的问题 insert - select 是很常见的在两个表之间拷贝数据的方法.需要注意,在可重复读隔离级别下,这个语句会给 select的表里扫描到的记录和间隙加读锁. ...

  4. MySQL中有inserted表吗_使用 inserted 和 deleted 表

    创建和维护数据库 使用 inserted 和 deleted 表 触发器语句中使用了两种特殊的表:deleted 表和 inserted 表.Microsoft® SQL Server™ 2000 自 ...

  5. mysql 评价表设计_来聊聊mysql单表评论系统怎么设计

    评论系统对于一个网站来说几乎是必不可少的,当然评论系统的设计也多种多样.一般情况下,评论数据表会和一个用户信息表结合使用,就是在评论表中记录的有用户id(例如user_id),然后查询评论数据的时候根 ...

  6. oracle分库分表原理_题库分库分表架构方案

    方案 项目背景 在现在题库架构下,针对新购买的1300W多道数据进行整合,不影响现有功能.由于数据量偏多,需要进行数据的切分 目标场景 兼容旧的功能 对1300多W数据进行分库分表 需要对旧的数据进行 ...

  7. mysql清空数据库中所有表数据_清空mysql数据库所有表数据

    1,查看数据库状态 及启动停止 /etc/init.d/mysqld status/etc/init.d/mysqld start/etc/init.d/mysqld stop 2,给用户配置初始密码 ...

  8. plsql查看表空间_最佳实践—PG数据库系统表空间重建

    马晓亮中国PG分会认证专家金风科技DBA,恩墨学院PostgreSQL金牌讲师,从事10余年的数据库相关工作,对通讯信息化.电网安全改造有丰富经验,为公司主要产品的国产化技术转型做了很多工作,未来主要 ...

  9. python选择表单_如何使用Python在表单中选择选项?

    下面是一些基本用法示例:>>> import mechanize >>> br = mechanize.Browser() >>> br.open ...

最新文章

  1. ROS知识【10】:ROS通信
  2. php 5.6 新特性,PHP 5.6正式发布:新特性、及功能改进介绍
  3. c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...
  4. 2018年广东工业大学文远知行杯新生程序设计竞赛 1004 明日会吹明日的风β
  5. Android 模拟器下载、编译及调试
  6. SUSE中LVM的使用心得
  7. 利用真值表法求取主析取范式以及主合取范式的实现(C++)
  8. php 时间加法函数_php 时间加减
  9. shell 删除七日内日志_shell日志删除(超容量自动)
  10. webassembly_WebAssembly的设计
  11. 未能加载文件或程序集“Autofac, Version=3.4.0.0,
  12. 设计灵感|简约复古风格海报设计这样玩
  13. 建筑电气工程设计常用图形和文字符号_电气设计绘图线宽是什么标准,需要遵循哪些基本原则?你知道吗?...
  14. js基础-19-判断图片加载完成的方法
  15. clamwin + 拖拽查毒+右键查毒
  16. C++ fabs和abs区别
  17. 计算机上的科学计算器在哪里找,计算机的计算器在哪 自己的电脑上的计算器在哪里找...
  18. 人工智能快速发展 计算机视觉产品打造智能社会“入口”
  19. HTTP的常用方法、GET和POST的区别
  20. IPv6 地址数量有多少,能够分配到地球上的每一粒尘埃吗

热门文章

  1. java增函数的单变量求解,最底层码农的不易谁能体会?谁心里苦谁知道啊。
  2. 联阿里接腾讯,B站如何实现“意义非凡”的一年
  3. 瀚龙广告提供一站式的新型广告模式!大大增加用户体验
  4. 软件设计师证书重要吗?
  5. 如何用搜狗拼音输入法输入希腊字母
  6. python计算学分绩点_GitHub - junfenghu/calc_GPA: 计算学分基点
  7. html中图片鼠标滑动的效果,JS DOM实现鼠标滑动图片效果
  8. 赶在秃之前肝出一款小游戏
  9. 雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万?
  10. 笨功夫与巧心思,Milvus开源社区的成长