現在、JDBCを介して処理され、ResultSetを返す関数内にラップされている10の異なるクエリがあります。これらの各ResultSetオブジェクトは、外部プログラムによって繰り返され、要件ごとの列名ではなく、インデックスを介してアクセスされます。私は検討している3つのアプローチがあり、純粋なOO設計に可能な限り近づけながら、これを処理する方法に関する現在のベストプラクティスを探しています。これで、私のスキーマは次のようになります。
create table Cats
(
name varchar2,
age number,
length number,
location varchar2,
isStray varchar2
);
私のクエリの2つはそのようなものです:
public ResultSet getAllCats()
{
Select * from Cats;
}
public ResultSet getCatAgeAndName(){
Select cat.age,cat.name from Cats cat
}
今、私がこれらのプロパティにアクセスすることを検討したアプローチResultSet.getXXX(index);
以下の通り:
public static final int GET_CAT_AGE_AND_NAME_AGE_INDEX = 1;
public static final int GET_CAT_AGE_AND_NAME_NAME_INDEX = 2;
また
public enum GetCatAgeAndNamePosition
{
AGE(1),
NAME(2);
}
また
public class GetCatAgeAndNameQuery
{
public enum Position
{
AGE(1),
NAME(2);
}
private ResultSet results;
}
最初のアプローチは、クエリごとのインデックスごとに1つの静的ファイナルです。
2つ目は、クエリごとの列挙型です。
3つ目は、クエリごとのクラスです。
これを純粋で保守可能に保つための上記またはその他の洞察のどれが利用可能です。