ResultMap中<id>和<result>的区别
<resultMap type="com.wkd.entity.AreaCode" id="baseResultMap">
<!-- colum:表中列名(大写) property:类中属性名 jdbcType:表中类型 -->
<id column="CODE" property="code" jdbcType="VARCHAR" />
<result column="CONTENT" property="content" jdbcType="VARCHAR" />
<result column="CODE_LEVEL" property="code_level" jdbcType="CHAR" />
<result column="SUPERIOR" property="superior" jdbcType="VARCHAR" />
</resultMap>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
1、resultMap 元素定义了一个com.wkd.entity.AreaCode(这里是全限定名),它的属性id代表它的标识,type代表使用哪种类作为其映射的类,可以是别名或者全限定名。↓↓↓
<resultMap type="com.wkd.entity.AreaCode" id="baseResultMap">
- 1
子元素id代表resultMap的主键,而result代表其属性。
2、在自定义的resultMap中第一列通常是主键id,那么id 和result有什么区别呢?
id和result都是映射单列值到一个属性或字段的简单数据类型。
唯一不同的是,id是作为唯一标识的,当和其他对象实例对比的时候,这个id很有用,尤其是应用到缓存和内嵌的结果映射。
3、property: 映射数据库列的字段或属性,如果JavaBean的属性与给定的名称匹配,就会使用匹配的名字,否则MyBatis将搜索给定名称的字段,两种情况下你都可以使用逗点的属性形式,比如,你可以映射到“”username:,也可以映射到“address.street.number”
4、column:数据库的列名或者列标签别名,与传递个resultSet.getString(columnName)的参数名称相同。
5、下面这两个我也不太懂,可能以后用的上,先存在这里写着…
javaType:完整java类名或者别名,如果映射到一个JavaBean,那么MyBatis通常会自行监测到。然而如果映射到一个HashMap,那应该明确指定javaType来确保所需行为。
jdbcType;支持的jdbc类型,这个属性只在insert,update,delete的时候针对允许空的列有用,JDBC需要这项,但Mybatis不需要,如果直接编写JDBC代码,在允许为空值的情况下需要指定这个类型。
原文: https://blog.csdn.net/qq_37717494/article/details/104648275