m0_68063473 2022-12-10 00:38 采纳率: 87.5%
浏览 37
已结题

Spring进行rowmapper映射时,setter方法什么时候被调用,实体类的属性什么时候被赋值的

今天在看书的时候,看到了Spring的rowmapper映射,大概知道是将实体类属性与数据库字段相对应,但还有点小疑惑,不知道setter方法是什么时候被调用的,实体类Myuser的属性是在执行哪一行代码的时候被赋值的,有没有友友能够点拨点拨我~~
还有jdbctemplate是啥,起到了啥作用。

img

img

  • 写回答

3条回答 默认 最新

  • 游语 2022-12-13 20:26
    关注
    1. 实体类MyUser的属性在jdbctemplate.query方法内部被赋值
    2. jdbctemplate.query内部执行了stmt.executeQuery操作获取到sql查询的ResultSet类型的返回;
    3. RowMapper的实现类BeanPropertyRowMapper调用mapRow方法将ResultSet对象转为MyUser对象;

    img

    1. mapRow方法主要赋值方法在下面两行:
      BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(mappedObject)
      bw.setPropertyValue(pd.getName(), value)
      大致原理是通过属性转换器将查询到的结果传给泛型类,泛型类传入去的是MyUser.class,那么实际上就是传给了MyUser对象

    最后:建议当前了解大致原理就行,随着阅历的增长,源码理解程度会越来越深,这个问题就很简单了

    本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月19日
  • 已采纳回答 12月19日
  • 专家已采纳回答 12月14日
  • 修改了问题 12月10日
  • 展开全部

悬赏问题

  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决