MyBatis的SQL映射文件

1.使用MyBatis实现条件查询sql

(1)sql映射文件数据库

  • mapper:映射文件的根元素节点,只有一个属性namespace,其做用以下: 

  <1>用于区分不一样的mapper,全局惟一编程

  <2>绑定DAO接口,即面向接口编程。当namespace绑定某一接口以后,能够不用写该接口的实现类,MyBatis会经过接口的完整限定名查找到对应的mapper配置来执行SQL语句。所以namespace的命名必需要跟接口同名。缓存

  • cache:配置给定命名空间的缓存
  • cache-ref:从其余命名空间引用缓存配置
  • resultMap:用来描述数据库结果集和对象的对应关系
  • sql:能够重用的SQL块,也能够被其余语句引用
  • insert:映射插入语句
  • update:映射更新语句
  • delete:映射删除语句
  • select:映射查询语句

2.使用resultMap完成查询结果的展示app

 (1)resultTypespa

  resultType直接表示返回类型,包括基础数据类型和复杂数据类型对象

 (2)resultMapblog

  resultMap则是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果映射到哪个resultMap上。它的应用场景通常是:数据库字段信息与对象属性不一致或者须要作复杂的联合查询以便自由控制映射结果接口

 (3)resultType和resultMap的关联ci

  在MyBatis进行查询映射的时候,其实查询出来的每一个字段值都放在一个对应的Map里面,其中键是字段名,值则是其对应的值。当select元素提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋值给resultType所指定的对象对应的属性(即调用对应的对象里的属性的setter方法进行填充)。

resultType属性和resultMap属性绝对不能同时存在

3.使用@Param注解实现多参数入参

4.使用resultMap实现高级结果映射

(4.1)association

  association仅处理一对一的关联关系

(4.2)collection

5.resultMap自动映射级别和MyBatis缓存

 (1)MyBatis对resultMap自动映射的三个匹配级别:

  • NONE:禁止自动匹配
  • PARTIAL(默认):自动匹配全部属性,有内部嵌套(association、collection)除外
  • FULL:自动匹配全部
相关文章
相关标签/搜索