qq_40032870 2019-01-02 17:30 采纳率: 0%
浏览 3462

Mybatis如何使用注解方式设置resultMap的type属性。

@Mapper
public interface TableSearchMapper {
  @Select("call sp_XTBCX(#{tableName,mode=IN,jdbcType=VARCHAR},'','',#{result,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=result})")
  @Results(id = "result")
  @Options(statementType= StatementType.CALLABLE )
  public List<Map<String,Object>> tableSearch(@Param("tableName")String tableName,@Param("result")List<Map<String,Object>> result);
}

存储过程是输入表名后输出经过处理的全集,所以列名是不确定的,想写一个动态的方法,通过网上搜索XML形式在配置中将的type属性设置成HashMap可以实现,但是由于现在工程中所有Mapper都是基于注解形式的,但是@Results没有type属性

还有一点疑惑是:TableSearchMapper这个方法,返回值是否可以是void,是将Map参数传进来之后return Map参数还是return 这个方法的返回值?

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-21 01:52
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7513323
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:mybatis多表查询的结果映射(resultMap)
    • 除此之外, 这篇博客: mybatis 使用集合中的 ·resultMap="TestAaa",结果自动转为实体,resultType="map"结果就是map类型的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
      <resultMap id="TestAaa" type="cn.stu.bestcxx.entity.Test">
          <id column="name_a" jdbcType="INTEGER" property="nameA" />
          <result column="name_b" jdbcType="VARCHAR" property="nameB" />
          <result column="name_c" jdbcType="BIT" property="nameC" />
        </resultMap>

      resultMap="TestAaa",结果自动转为实体,resultType="map"结果就是map类型的

       <select id="getById" parameterType="java.lang.Integer" resultMap="Test">
          select 
          <include refid="columns" />
          from test
          where name_a = #{nameA,jdbcType=INTEGER}
        </select>


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏