0
我试图在这里建立一个PreparedStatement是例如:如何在java中动态设置PreparedStatement?
这样三个“如果”的声明是它越来越棘手,在准备发言后建,我不知道有多少变量应集,我现在在做的唯一方法是这样的:
retrieveAppleStatement.setString(1, request .getId());
if (hasPackagedTime && hasExpiredTime && hasType) {
statement .setLong(2, packagedTime);
statement .setLong(3, expiredTime);
statement .setString(4, (type+"%"));
}
else if (hasPackagedTime && ! hasExpiredTime && !hasType) {
statement .setLong(2, packagedTime));
}
else if (hasPackagedTime && ! hasExpiredTime && hasType) {
statement .setLong(2, packagedTime);
statement .setString(3, (type+"%"));
}
else if (hasPackagedTime && hasExpiredTime && !hasType) {
statement .setLong(2, packagedTime);
statement .setLong(3, expiredTime);
}
else if (!hasPackagedTime && hasExpiredTime && hasType) {
statement .setLong(2, expiredTime);
statement .setString(3, (type + "%"));
}
else if (!hasPackagedTime && ! hasExpiredTime && hasType) {
statement .setString(2, (type + "%"));
}
else if (!hasPackagedTime && hasExpiredTime && !hasType) {
statement .setLong(2, expiredTime);
}
我必须列出的所有组合(不适用于所有的空,因为我并不需要设置任何东西),感觉有点有点跛脚...有没有更好的办法做到这一点?任何我们可以在创建准备语句时动态设置值的方式?
使用Builder的设计模式创建Statement来创建一个'StatementBuilder'类可能很有用。这样你可以分离你的逻辑(即创建和填充语句)和获取结果并返回它们的类。 – ahjohnston25