mybatis由浅入深day01_8.2resultMap

本文详细介绍了MyBatis中resultMap的使用方法及其在解决查询列名与POJO属性名不一致问题上的应用。通过具体示例展示了如何定义resultMap以及如何将其作为statement的输出映射类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  8.2 resultMap

 mybatis中使用resultMap完成高级输出结果映射。

resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。

如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 resultMap实质上还需要将查询结果映射到pojo对象中。

resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

 

    8.2.1 resultMap使用方法

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

 

1、定义resultMap

 

2、使用resultMap作为statement的输出映射类型

 

    8.2.2 将下边的sql使用User完成映射

SELECT id id_,username username_ FROM USER WHERE id=#{value}

 

User类中属性名和上边查询列名不一致。

 

      8.2.2.1 定义reusltMap

  

<id />:此属性表示查询结果集的唯一标识,非常重要。如果是多个字段为复合唯一约束则定义多个<id />。

Property:表示person类的属性。

Column:表示sql查询出来的字段名。

Column和property放在一块儿表示将sql查询出来的字段映射到指定的pojo类属性上。

 

<result />:普通结果,即pojo的属性。

 

      8.2.2.2 使用resultMap作为statement的输出映射类型

  

      8.2.2.3 mapper.java

  

8.2.2.4 测试

  

  8.3 小结

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

转载于:https://www.cnblogs.com/justdoitba/p/8040396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值