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 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题