ssm mapper.xml讲解

行是知之始,知是行之成。这篇文章主要讲述ssm mapper.xml讲解相关的知识,希望能为你提供帮助。
1.resultMap
resultMap就是结果集映射的配置标签,
二、从SQL查询结果到领域模型实体
  在深入ResultMap标签前,我们需要了解从SQL查询结果集到javaBean或POJO实体的过程。
  1. 通过JDBC查询得到ResultSet对象
  2. 遍历ResultSet对象(结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等),并将每行数据暂存到HashMap(即下文的resultmap)实例中,以结果集的字段名或字段别名为键,以字段值为值
  3. 根据ResultMap标签的type属性(返回值的全限定类名,或类型别名)通过反射实例化领域模型,(autoMapping属性,true为:自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法)
  4. 根据ResultMap标签的type属性和id(主键)、result(属性)等标签信息将HashMap中的键值对,填充到领域模型实例中并返回
举个例子:
【ssm mapper.xml讲解】1.示例1:通过setter构造领域模型

public class EStudent{ private long id; private String name; private int age; // getter,setter方法/** * 必须提供一个无参数的构造函数 */ public EStudent(){} }

 
< !-- 属性id代表整个经过处理后的结果集resultMap的标识,type代表使用哪种类作为其映射的类,可以是别名或者全限定名--> < resultMap id="getStudentRM" type="EStudnet"> 子元素id代表resultMap的主键 < id property="id" column="ID"/> < !--property: 映射数据库列的字段的java pojo类的成员变量名 (若映射失败,myatis会映射成搜索给定名称的字段) column:数据库的列名或者列标签别名 result代表其属性。--> < result property="studentName" column="Name"/> < result property="studentAge" column="Age"/> < /resultMap>

  示例2:通过构造函数构造领域模型
public class EStudent{ private long id; private String name; private int age; // getter方法 public EStudent(long id, String name, int age){ this.id = id; this.name = name; this.age = age; } }

< select id="getStudent" resultMap="getStudentRM"> SELECT ID, Name, Age FROM TStudent < /select> < resultMap id="getStudentRM" type="EStudnet"> < !----- constructor元素 ,指定使用指定参数列表的构造函数来实例化领域模型。注意:其子元素顺序必须与参数列表顺序对应idArg子元素 ,标记该入参为主键arg子元素 ,标记该入参为普通字段(主键使用该子元素设置也是可以的) -------> < constructor> < idArg column="ID" javaType="_long"/> < arg column="Name" javaType="String"/> < arg column="Age" javaType="_int"/> < /constructor> < /resultMap>

转载。

    推荐阅读