Hana Parameterised存储过程发布简单的jdbc模板

时间:2016-12-25 06:18:14

标签: java spring-jdbc hana

看起来jdbc模板在调用存储过程时没有将params传递给hana db。 根据我们的分析,spring jdbc实现不会从元数据中识别过程参数。 我们使用标准代码来调用proc。

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString())
                        .withProcedureName(name);
                results = simpleJdbcCall.execute(params);

我们尝试搜索网但是找到了令人满意的解决方案 我也尝试过设置参数表达式

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString())
       .withProcedureName(name);
     SqlParameterSource in = new MapSqlParameterSource().addValues(params);

    results = simpleJdbcCall.execute(in);

这里params是hashmap。 问题仍然存在相同

1 个答案:

答案 0 :(得分:1)

来自javadoc(强调是我的):

  

元数据处理基于JDBC驱动程序提供的DatabaseMetaData。由于我们依赖于JDBC驱动程序,因此"自动检测"只能用于已知提供准确元数据的数据库。目前包括Derby,MySQL,Microsoft SQL Server,Oracle,DB2,Sybase和PostgreSQL。 对于任何其他数据库,您需要明确声明所有参数

我会说你需要使用SimpleJdbcCall#declareParameters(SqlParameter...)