Mybatis结果集映射

1.Mybatis在执行语句的时候,会自动创建结果集,所以很多时候不需要显示的定义结果集;
2.那么什么时候需要定义结果集呢?
  • 当数据库的列(column)与pojo的属性(Property)不一致的时候
  • 多表连接查询(有时数据库需要满足范式的要求,所以多表连接映射才是一个完成的实体),向实体类映射的时候;
3.如何进行结果集映射?
  • 方式一:在执行SQL的时候,给数据库的字段 通过 as取别名与 实体类属性一致即可;
  • 方式二:自己设置对应的结果集映射;
  • 当数据表之间存在一对一,一对多,和多对多的关系的时候;

1 <resultMap id="userResultMap" type="User">
2   <id property="id" column="user_id" />
3   <result property="username" column="user_name"/>
4   <result property="password" column="hashed_password"/>
5 </resultMap>

结果映射(resultMap)

  • constructor - 用于在实例化类时,注入结果到构造方法中
    • idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能
    • arg - 将被注入到构造方法的一个普通结果
  • id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能
  • result – 注入到字段或 JavaBean 属性的普通结果
  • association – 一个复杂类型的关联;许多结果将包装成这种类型
    • 嵌套结果映射 – 关联可以是 resultMap 元素,或是对其它结果映射的引用
  • collection – 一个复杂类型的集合
    • 嵌套结果映射 – 集合可以是 resultMap 元素,或是对其它结果映射的引用
  • discriminator – 使用结果值来决定使用哪个 resultMap
    • case – 基于某些值的结果映射
      • 嵌套结果映射 – case 也是一个结果映射,因此具有相同的结构和元素;或者引用其它的结果映射
 

posted @ 2021-03-30 08:45  迁承_0204  阅读(303)  评论(0编辑  收藏  举报