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