mybatis|mybatis框架之多表高级查询


mybatis|mybatis框架之多表高级查询
文章图片
mybatis|mybatis框架之多表高级查询
文章图片
【mybatis|mybatis框架之多表高级查询】
mybatis|mybatis框架之多表高级查询
文章图片
mybatis|mybatis框架之多表高级查询
文章图片
mybatis|mybatis框架之多表高级查询
今天是刘小爱自学Java的第118天 。
感谢你的观看 , 谢谢你 。
学习内容安排如下:

  • 补充说明知识点:resultMap , sql片段 。
  • mybatis中的高级查询 , 即多表关联查询 。
  • 主要分为:一对一查询 , 一对多查询 , 多对多查询 , 本来打算全学完的 , 奈何计划赶不上变化 。
一、知识点补充1resultMap
又要提到前面那个说了好几遍的起别名问题了 , 使用resultMap标签也能解决这个问题 。
当然该标签最主要的应用还是在于多表关联查询 , 先对其有个初步了解:
select标签中resultMap的值为userMap , 根据这个值找到对应id的resultMap标签 。
这样的一个好处在于独立出来了一个标签 , 我们在该标签里面可以做很多事情 。
上述中就可以在resultMap标签中使用type属性说明 , 其对应的实体类为User 。
使用result子标签也可以将数据表中的字段和实体类属性关联起来:
  • column对应的也就是数据库中的列名 。
  • property对应的也就是实体类的属性 。
当然取别名的方法还是使用settings开启驼峰匹配方便 , 不过resultMap也有其它的应用 。
2sql片段
我们先看两条sql语句:
在sql语句中 , *号是大忌 , 它的出现也就意味着性能低下 , 一般都不会直接用它 。
在这里使用将所有列名都书写的查询方式 , 这两条sql语句本质上其实就是一回事 。
当然具体如何优化sql语句 , 应该没这么简单 , 我只是以此引出sql片段这个知识点 。
如果每次都要书写这么长的sql语句 , 显然是一件很麻烦的事情 。
所以为了解决这个问题 , 使用sql片段:
将sql语句经常被使用的部分抽取成一个sql片段 , 在sql语句中使用<include>标签引用该片段即可 。
当然关于sql片段我们专门创建一个xml文件存放 , 再引用对应的片段也是可以的 。
不过要注意:在核心配置文件中别忘了引入该映射文件 , 我这边就不说详述了 。
3高级查询引入
表与表之间的关系 , 无外乎就是三种: