有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何提高Spring存储过程和属性bean行映射器的性能?

我已经扩展了org.springframework.jdbc.object.StoredProcedure来调用oracle过程,但我面临着严重的性能问题。请建议实现良好性能的最佳方法

我认为BeanPropertyRowMapper将光标输出映射到bean需要很多时间。 按程序返回的总记录-2469。 sql developer中的执行时间-1s java中的执行时间约为1.2分钟

public class TestingChart  extends StoredProcedure{

    public TestingChart(DataSource dataSource) {
        super(dataSource, DbSubseaConstants.PKG_TEST_FATCHART_PRC);
        declareParameter(new SqlParameter(DbSubseaConstants.MASTER_TEST_ID,OracleTypes.NUMBER));
        declareParameter(new SqlOutParameter(DbSubseaConstants.GET_REPORT_C2, OracleTypes.CURSOR,
                new BeanPropertyRowMapper<FATChart>(FATChart.class)));
        declareParameter(new SqlOutParameter(DbSubseaConstants.PO_ERROR_MESSAGE,java.sql.Types.VARCHAR));
        compile();
    }


    @Override
    public Map<String, Object> execute(Map<String, ?> inputs) {
        Map<String, Object> output = null;
        Map<String, Object> inputsParams = new HashMap<String, Object>();
        Long masterTestId =  (Long) inputs.get(DbSubseaConstants.MASTER_TEST_ID);
        inputsParams.put(DbSubseaConstants.MASTER_TEST_ID, masterTestId);
        output = super.execute(inputsParams);
        return output;
    }

}

共 (0) 个答案