gpt4 book ai didi

java - simplejdbccall 的输出参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:32 26 4
gpt4 key购买 nike

我有一个带有单个整数输出参数和 5 个 varchar 输入参数的存储过程,无论我尝试了什么,我似乎都无法取回输出参数。我在数据库上运行了存储过程,它返回了数据,所以我看不出我做错了什么。

有谁知道如何从 simplejdbccall 获取输出参数?

我有这样的东西:

    SimpleJdbcCall simpleJdbcCall =
new SimpleJdbcCall( getDatasourceForEnvironment() ).withProcedureName( "_Get_Id" ).declareParameters(
new SqlParameter( "MyID", Types.VARCHAR ), new SqlParameter( "MySourceID", Types.VARCHAR ),
new SqlParameter( "MyLocationID", Types.VARCHAR ), new SqlParameter( "MyVisitID", Types.VARCHAR ),
new SqlParameter( "MyVisitDate", Types.VARCHAR ) );

HashMap< String, String > input = new HashMap< String, String >();
input.put( "MyID", myObj.getMyID() );
input.put( "MySourceID", myObj.getMySourceID() );
input.put( "MyLocationID", myObj.getMyLocationID() );
input.put( "MyVisitID", myObj.getMyVisitID() );
input.put( "MyVisitDate", myObj.getMyVisitDate() );

System.out.println( simpleJdbcCall.execute( input ) );

最佳答案

我有两处错误:

  1. 我连接到错误的数据库。编写更细粒度的单元测试揭示了我的错误。

  2. 因为“execute”返回的是一个映射,所以输出参数是大小写敏感。

长话短说,您不需要做任何特别的事情 - Spring 默认包含输出参数。此外,MapSqlParameterSource 是一种更简洁的方式来处理这些类型的方法。

关于java - simplejdbccall 的输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com