java中传递可调用参数值的最佳方法
我正在寻找将值从可调用参数对象传递到单独变量的最佳实践 我使用一个可调用参数的对象将值传递给变量。我用数字来表示每个参数的值。有没有更有效的方法java中传递可调用参数值的最佳方法,java,sql,Java,Sql,我正在寻找将值从可调用参数对象传递到单独变量的最佳实践 我使用一个可调用参数的对象将值传递给变量。我用数字来表示每个参数的值。有没有更有效的方法 //为可协作参数创建新对象 CallableParameters params=新的CallableParameters(); //传递输入值 addParamIn(ID(),Types.INTEGER); addParamIn(NUMBER(),Types.INTEGER); //返回输出值 addParamIn(CITY(),Types.VARCH
//为可协作参数创建新对象
CallableParameters params=新的CallableParameters();
//传递输入值
addParamIn(ID(),Types.INTEGER);
addParamIn(NUMBER(),Types.INTEGER);
//返回输出值
addParamIn(CITY(),Types.VARCHAR);
addParamIn(YEAR(),Types.INTEGER);
//执行COLLABLE语句以运行存储过程
CallableStatement.executeCallable(callableName、params、conn);
然后我尝试将值传递给变量,如下所示:
String CITY=(整数)params.getParams().get(3.getParamValue();
int YEAR=(字符串)params.getParams().get(4.getParamValue();
有没有更好的方法来调用我的变量,而不是像使用名称的枚举之类的get(3)
enum ParameterSetter implements Consumer<CallableParameters> {
ID {
void accept(Callable Parameters setIn) {
setIn.addParamIn(createId(), Types.INTEGER);
}
}
static String createId() {...}
}
我想这是品味的问题 您可以为每个字段创建一个带有条目的枚举,以及相应的getter/setter方法。这是更具可读性还是更优雅还有争议。我很喜欢。问得好,但答案是基于观点的。CallableParameters和executeCallable方法是您的API。不是java内置的JDBCAPI。您的编码方式取决于API的设计方式。。。。。Java CallableStatement提供API以按名称获取输出参数…@nicomp它只是基于观点,还是有速度、可靠性等因素与Java体系结构有关(我不知道)?@Loc是否有关于选择巫婆解决方案的一般指南?除了人为错误之外,使用数字而不是枚举是否还有其他含义?这只是口味的问题吗?我认为使用这种语法而不是getter和setter可能会有影响,因为您可以轻松地更改变量,而无需更新调用的数量
for (ParameterSetter setter : ParameterSetter.values()) {
setter.accept(yourParameterObject);
}