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);

しかし、これは機能しますか?複数の結果が得られた場合、これはどのように機能しますか。List right を返す必要があります。オブジェクトのリストを返す SimpleJdbcCall メソッドが見つかりませんでした。返される列を Bean にマップするために RowMapper を渡すことができるメソッドさえありませんでした。

4

1 に答える 1

2

期待どおりにコレクションを返す JDBCTemplate の query メソッドを使用できます。行マッパーを指定することもできます。このチュートリアルのパート 1チュートリアルのパート 2を確認してください

于 2012-09-07T00:35:36.270 に答える