jpi多表联查_使用mybatis进行多表联查
一.使用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进行多表联查相关推荐
- jpi多表联查_使用Mybatis进行多表联查操作
(1)增加一个测试数据库shop_order,sql语句如下: CREATE DATABASE`shop_order`;USE`shop_order`;CREATE TABLE`t_user` ( ` ...
- mysql水果表查询_最全MySQL数据库表的查询操作
序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...
- mysql 复制表耗时_聊一下mysql的表复制
1 insert...from的问题 insert - select 是很常见的在两个表之间拷贝数据的方法.需要注意,在可重复读隔离级别下,这个语句会给 select的表里扫描到的记录和间隙加读锁. ...
- MySQL中有inserted表吗_使用 inserted 和 deleted 表
创建和维护数据库 使用 inserted 和 deleted 表 触发器语句中使用了两种特殊的表:deleted 表和 inserted 表.Microsoft® SQL Server™ 2000 自 ...
- mysql 评价表设计_来聊聊mysql单表评论系统怎么设计
评论系统对于一个网站来说几乎是必不可少的,当然评论系统的设计也多种多样.一般情况下,评论数据表会和一个用户信息表结合使用,就是在评论表中记录的有用户id(例如user_id),然后查询评论数据的时候根 ...
- oracle分库分表原理_题库分库分表架构方案
方案 项目背景 在现在题库架构下,针对新购买的1300W多道数据进行整合,不影响现有功能.由于数据量偏多,需要进行数据的切分 目标场景 兼容旧的功能 对1300多W数据进行分库分表 需要对旧的数据进行 ...
- mysql清空数据库中所有表数据_清空mysql数据库所有表数据
1,查看数据库状态 及启动停止 /etc/init.d/mysqld status/etc/init.d/mysqld start/etc/init.d/mysqld stop 2,给用户配置初始密码 ...
- plsql查看表空间_最佳实践—PG数据库系统表空间重建
马晓亮中国PG分会认证专家金风科技DBA,恩墨学院PostgreSQL金牌讲师,从事10余年的数据库相关工作,对通讯信息化.电网安全改造有丰富经验,为公司主要产品的国产化技术转型做了很多工作,未来主要 ...
- python选择表单_如何使用Python在表单中选择选项?
下面是一些基本用法示例:>>> import mechanize >>> br = mechanize.Browser() >>> br.open ...
最新文章
- ROS知识【10】:ROS通信
- php 5.6 新特性,PHP 5.6正式发布:新特性、及功能改进介绍
- c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...
- 2018年广东工业大学文远知行杯新生程序设计竞赛 1004 明日会吹明日的风β
- Android 模拟器下载、编译及调试
- SUSE中LVM的使用心得
- 利用真值表法求取主析取范式以及主合取范式的实现(C++)
- php 时间加法函数_php 时间加减
- shell 删除七日内日志_shell日志删除(超容量自动)
- webassembly_WebAssembly的设计
- 未能加载文件或程序集“Autofac, Version=3.4.0.0,
- 设计灵感|简约复古风格海报设计这样玩
- 建筑电气工程设计常用图形和文字符号_电气设计绘图线宽是什么标准,需要遵循哪些基本原则?你知道吗?...
- js基础-19-判断图片加载完成的方法
- clamwin + 拖拽查毒+右键查毒
- C++ fabs和abs区别
- 计算机上的科学计算器在哪里找,计算机的计算器在哪 自己的电脑上的计算器在哪里找...
- 人工智能快速发展 计算机视觉产品打造智能社会“入口”
- HTTP的常用方法、GET和POST的区别
- IPv6 地址数量有多少,能够分配到地球上的每一粒尘埃吗
热门文章
- java增函数的单变量求解,最底层码农的不易谁能体会?谁心里苦谁知道啊。
- 联阿里接腾讯,B站如何实现“意义非凡”的一年
- 瀚龙广告提供一站式的新型广告模式!大大增加用户体验
- 软件设计师证书重要吗?
- 如何用搜狗拼音输入法输入希腊字母
- python计算学分绩点_GitHub - junfenghu/calc_GPA: 计算学分基点
- html中图片鼠标滑动的效果,JS DOM实现鼠标滑动图片效果
- 赶在秃之前肝出一款小游戏
- 雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万?
- 笨功夫与巧心思,Milvus开源社区的成长