我正在寻找有关将值从可调用参数对象传递到单独变量的最佳实践。
我正在使用可调用参数的对象将值传递给变量。我使用数字表示每个参数的值。有没有更有效的方法?
//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)
更好的方法来调用我的变量,例如带有名称的枚举之类的?
答案 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);
}
我想这是一个品味问题。