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