自定义ResultMap中的id 和result的区别

<resultMap id = "CashInvoiceMap" type="com.dfire.soa.invoice.bo.Invoice">
    <id column="id" property="id" />
    <result column="order_id" property="orderId" />
    <result column="customer_register_id" property="customerRegisterId" />
    <result column="entity_id" property="entityId" />
    <result column="invoice_kind" property="invoiceKind" />

</resultMap>

在自定义的resultMap中第一列通常是主键id,那么id 和result有什么区别呢?

id和result都是映射单列值到一个属性或字段的简单数据类型。

唯一不同是。id是作为唯一标识的,当和其他对象实例对比的时候,这个id很有用,尤其是应用到缓存和内嵌的结果映射。

property: 映射数据库列的字段或属性,如果JavaBean的属性与给定的名称匹配,就会使用匹配的名字,否则MyBatis将搜索给定名称的字段,两种情况下你都可以使用逗点的属性形式,比如,你可以映射到“”username:,也可以映射到“address.street.number”

column:数据库的列名或者列标签别名,与传递个resultSet.getString(columnName)的参数名称相同。

javaType:完整java类名或者别名,如果映射到一个JavaBean,那么MyBatis通常会自行监测到。然而如果映射到一个HashMap,那应该明确指定javaType来确保所需行为。

jdbcType;支持的jdbc类型,这个属性只在insert,update,delete的时候针对允许空的列有用,JDBC需要这项,但Mybatis不需要,如果直接编写JDBC代码,在允许为空值的情况下需要指定这个类型。


  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MyBatis ,我们可以使用 ResultMap 标签来自定义查询结果的封装规则。ResultMap 标签可以将查询结果集的列与 Java 对象的属性进行映射,从而实现自定义的结果封装规则。 下面是一个简单的 ResultMap 的示例: ``` <resultMap id="userResultMap" type="User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> <result column="email" property="email"/> </resultMap> ``` 在这个示例,我们定义了一个名为 userResultMapResultMap,它将查询结果集id、username、password 和 email 列映射到 User 对象的 id、username、password 和 email 属性上。 在实际应用,我们可以根据需要进行更加复杂的结果封装规则的定义,比如使用 association 和 collection 标签来定义关联对象和集合对象的映射关系等。例如: ``` <resultMap id="blogResultMap" type="Blog"> <id column="id" property="id"/> <result column="title" property="title"/> <result column="content" property="content"/> <association property="author" javaType="Author"> <id column="author_id" property="id"/> <result column="author_username" property="username"/> <result column="author_password" property="password"/> <result column="author_email" property="email"/> </association> <collection property="comments" ofType="Comment"> <id column="comment_id" property="id"/> <result column="comment_content" property="content"/> <result column="comment_author" property="author"/> </collection> </resultMap> ``` 在这个示例,我们定义了一个名为 blogResultMapResultMap,它将查询结果集id、title 和 content 列映射到 Blog 对象的 id、title 和 content 属性上;将查询结果集的 author_id、author_username、author_password 和 author_email 列映射到 Blog 对象的 author 属性上;将查询结果集的 comment_id、comment_content 和 comment_author 列映射到 Blog 对象的 comments 属性上。其,author 属性是一个关联对象,comments 属性是一个集合对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值