目前,我有十个不同的查询,它们通过 JDBC 处理,并包装在返回 ResultSet 的函数中。这些 ResultSet 对象中的每一个都由外部程序迭代,并将通过它们的索引而不是每个需求的列名来访问。我正在考虑三种方法,并且正在寻找当前的最佳实践来处理这个问题,同时尽可能接近纯 OO 设计。现在我的架构如下所示:
create table Cats
(
name varchar2,
age number,
length number,
location varchar2,
isStray varchar2
);
我的两个查询是这样的:
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;
}
第一种方法是每个查询每个索引一个静态最终结果。
第二个是每个查询的枚举。
第三个是每个查询一个类。
上述哪一项或任何其他保持这种纯粹性和可维护性的见解是可用的。