java resultmap_mybatis: resultMap 结果集映射和多表查询

mybatis 在进行 select 查询操作的时候,返回类型可以用 resultType,也可以用 resultMap;

resultType 是直接表示返回类型的(一般返回为基本数据类型时使用,当查询的是一条SQL数据时,且这条SQL数据的每个字段都和一个Javabean 中的属性名 与之对应,mybatis 会通过 autoMapping ,将每个字段的值赋给 Javabean),而当字段名和属性名不一致时,这时可以使用 resultMap

resultMap 是对外部的一个 ResultMap 标签的引用,并且  resultType 跟 resultMap 不能同时存在。

一个简单 resultMap 查询

select * from teacher where id=#{id}

当 SQL 中字段名 和 javabeen Teacher 的属性名一致时,自动映射写法如下

select * from teacher where id=#{id}

resultMap 常用标签属性说明

id:对应中 resultMap 的名称

type:type就是指定映射到哪一个实体类中

column:在数据库中的列名称

property:在实体类定义的属性名称

associattion :实体类对象包含另一个对象时,例如:一个学生对应一个老师 student =》teacher

collection :实体类对象包含的是一个集合时,例如:一个老师对应一群学生 teacher =》List

association(一对一) 和 collection(一对多)

association:一个学生对应一个老师 student =》teacher

select * from student

collection:一个老师对应一群学生 teacher =》List

select * from teacher

select:用于加载复杂类型属性的映射语句的 ID,它会从 column 属性指定的列中检索数据,作为参数传递给目标 select 语句。 具体请参考下面的例子。注意:在使用复合主键的时候,你可以使用 column="{prop1=col1,prop2=col2}" 这样的语法来指定多个传递给嵌套 Select 查询语句的列名。这会使得 prop1 和 prop2 作为参数对象,被设置为对应嵌套 Select 语句的参数。

SELECT * FROM BLOG WHERE ID = #{id}

SELECT * FROM AUTHOR WHERE ID = #{id}

property:映射到列结果的字段或属性。 -----------------指的是 javaBean 中的属性 类型(一个javaBeen 中的属性可以是基本数据类型也可以是 Object)

javaType:一个 Java 类的完全限定名,或一个类型别名。---------------------指的是一个 JavaBean class类型( A a = new a(); 理解为 A 类型)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值