SpringBoot Mybatis注解调用Mysql存储过程并接收多个OUT结果集(多个mode=IN和mode=OUT参数)

2 篇文章 0 订阅
2 篇文章 0 订阅

其他同学提供的方式大部分都是Map接收调用mysql存储过程返回OUT结果集,要么游标,要么单个OUT,然后再次加工成想要的对象。涉及到直接用注解实现自动转换OUT参数结果集为对象时,都是忽略带过。

下面为各位踩坑的同学上代码描述如何处理调用mysql多in多out的存储过程: 

 @Options(statementType = StatementType.CALLABLE)
    @Select("CALL jira_gf.Proc_YFZX_GetProjectIssuesByProjectKeyAndVersionAndIssueType_dev(" +
            "#{projectKey,mode=IN,jdbcType=VARCHAR}," +
            "#{fixOrAffectversion,mode=IN,jdbcType=VARCHAR}," +
            "#{issueType,mode=IN,jdbcType=VARCHAR}," +
            "#{project_id,mode=OUT,jdbcType= INTEGER}," +
            "#{project_name,mode=OUT, jdbcType=VARCHAR}," +
            "#{project_key,mode=OUT, jdbcType=VARCHAR}," +
            "#{version_id,mode=OUT,jdbcType=INTEGER}," +
            "#{version_name,mode=OUT,jdbcType=VARCHAR}," +
            "#{version_startdate,mode=OUT,jdbcType=VARCHAR}," +
            "#{version_releasedate,mode=OUT,jdbcType=VARCHAR}," +
            "#{version_archived,mode=OUT,jdbcType=VARCHAR}," +
            "#{version_released,mode=OUT,jdbcType=VARCHAR}," +
            "#{sprint_id,mode=OUT,jdbcType=INTEGER}," +
            "#{sprint_name,mode=OUT,jdbcType=VARCHAR}," +
            "#{sprint_startdate,mode=OUT,jdbcType=BIGINT}," +
            "#{sprint_startdate_datetime,mode=OUT,jdbcType=VARCHAR}," +
            "#{sprint_enddate,mode=OUT,jdbcType=BIGINT}," +
            "#{sprint_enddate_datetime,mode=OUT,jdbcType=VARCHAR}," +
            "#{sprint_completedat,mode=OUT,jdbcType=BIGINT}," +
            "#{sprint_completedate_datetime,mode=OUT,jdbcType=VARCHAR}," +
            "#{sprint_started,mode=OUT,jdbcType=INTEGER}," +
            "#{sprint_closed,mode=OUT,jdbcType=INTEGER}," +
            "#{issue_id,mode=OUT,jdbcType=INTEGER}," +
            "#{issue_status,mode=OUT,jdbcType=INTEGER}," +
            "#{status_name,mode=OUT,jdbcType=VARCHAR}," +
            "#{issuetotal,mode=OUT,jdbcType=INTEGER})")
    @Results(value = {
            @Result(property = "projectId", column = "project_id"),
            @Result(property = "projectName", column = "project_name"),
            @Result(property = "projectKey", column = "project_key"),
            @Result(property = "versionId", column = "version_id"),
            @Result(property = "versionName", column = "version_name"),
            @Result(property = "versionStartdate", column = "version_startdate"),
            @Result(property = "versionReleasedate", column = "version_releasedate"),
            @Result(property = "versionArchived", column = "version_archived"),
            @Result(property = "versionReleased", column = "version_released"),
            @Result(property = "sprintId", column = "sprint_id"),
            @Result(property = "sprintName", column = "sprint_name"),
            @Result(property = "sprintStartdate", column = "sprint_startdate"),
            @Result(property = "sprintStartdateDatetime", column = "sprint_startdate_datetime"),
            @Result(property = "sprintEnddate", column = "sprint_enddate"),
            @Result(property = "sprintEnddateDatetime", column = "sprint_enddate_datetime"),
            @Result(property = "sprintCompletedate", column = "sprint_completedate"),
            @Result(property = "sprintCompletedateDatetime", column = "sprint_completedate_datetime"),
            @Result(property = "sprintStarted", column = "sprint_started"),
            @Result(property = "sprintClosed", column = "sprint_closed"),
            @Result(property = "issueId", column = "issue_id"),
            @Result(property = "issueStatus", column = "issue_status"),
            @Result(property = "statusName", column = "status_name"),
            @Result(property = "issueTotal", column = "issuetotal")
    })
    List<JiraProjectInfoWithSprintEntity>   getTargetProjectWithIssuesByPorjectKeyAndVersionAndIssueType(@Param("projectKey") String projectKey, @Param("fixOrAffectversion") String fixOrAffectversion, @Param("issueType") String issueType);

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值