从Java中的可调用参数传递值的最佳方法

时间:2019-06-21 14:43:53

标签: java sql

我正在寻找有关将值从可调用参数对象传递到单独变量的最佳实践。

我正在使用可调用参数的对象将值传递给变量。我使用数字表示每个参数的值。有没有更有效的方法?

//CREATES NEW OBJECT FOR COLLABLE PARAMETERS
CallableParameters params = new CallableParameters();
//PASS INPUT VALUES
params.addParamIn(ID(),Types.INTEGER); 
params.addParamIn(NUMBER(),Types.INTEGER); 


//RETURN OUTPUT VALUES
params.addParamIn(CITY(),Types.VARCHAR); 
params.addParamIn(YEAR(),Types.INTEGER); 

//EXECUTE THE COLLABLE STATEMENT TO RUN THE STORED PROCEDURE
CallableStatement.executeCallable(callableName, params, conn); 

然后我尝试将值传递给这样的变量:

String CITY = (Integer)params.getParams().get(3).getParamValue();
int YEAR=(String)params.getParams().get(4).getParamValue();

有没有比get(3)更好的方法来调用我的变量,例如带有名称的枚举之类的?

1 个答案:

答案 0 :(得分:1)

您可以创建枚举

enum ParameterSetter implements Consumer<CallableParameters> {
    ID {
        void accept(Callable Parameters setIn) {
            setIn.addParamIn(createId(), Types.INTEGER);
        } 
    }
    static String createId() {...} 
}

然后您可以像这样初始化参数

for (ParameterSetter setter : ParameterSetter.values()) {
    setter.accept(yourParameterObject);
}

我想这是一个品味问题。