2

我在数据库中有一个 sql 函数

FUNCTION RATELIMIT_OWN.Get_Logs ( p_yyyymm VARCHAR2, p_numec NUMBER )

函数返回

TYPE RATELIMIT_OWN.LOG_RECORD AS OBJECT
   (EVENTID              VARCHAR2(15),
    MSG                    VARCHAR2(2000),
    CREATE_DATE      DATE);

我是存储过程和 sql 函数的新手。在函数中查看查询后,它可能会返回多个结果。

我正在使用 Spring JDBC 来执行和获取结果。

 SimpleJdbcCall caller = new SimpleJdbcCall(this.jdbcTemplate).withFunctionName("RATELIMIT_OWN.Get_Logs");
    MyBean resultBean = null;

    MapSqlParameterSource paramMap = new MapSqlParameterSource();
    paramMap.addValue("p_yyyymm", inputBean.getMonth(), Types.VARCHAR);
    paramMap.addValue("p_numec", inputBean.getNumec(), Types.INTEGER);

    resultBean = caller.executeFunction(MyBean.class, paramMap);

但这行得通吗?如果我得到多个结果,这是如何工作的。它应该正确返回列表。我找不到任何 SimpleJdbcCall 方法来返回对象列表,甚至找不到可以通过 RowMapper 将返回的列映射到 Bean 的方法。

4

1 回答 1

2

您可以使用 JDBCTemplate 的查询方法,该方法将按预期返回一个集合。还允许您指定行映射器。检查本教程第 1 部分教程第 2 部分

于 2012-09-07T00:35:36.270 回答