Jdbc DAO类中的CPD错误

Jdbc DAO类中的CPD错误,jdbc,dao,naming-conventions,cpd,spring,Jdbc,Dao,Naming Conventions,Cpd,Spring,我有一个DAO类,它有多个方法。在每个方法中,我对ResultSet使用变量名result,对PreparedStatement使用语句,并使用closeResources方法关闭PreparedStatement和连接。我使用了一个DataManager类,它有createConnection方法getConnection方法。在我的DAO中有10种方法。我使用DAO工厂方法在BO中获取DAO对象。这是一段代码,当我在eclipse中运行CPD工具时显示为冲突。它在我的DAO的大约6到8个方法

我有一个DAO类,它有多个方法。在每个方法中,我对ResultSet使用变量名result,对PreparedStatement使用语句,并使用closeResources方法关闭PreparedStatement和连接。我使用了一个DataManager类,它有createConnection方法getConnection方法。在我的DAO中有10种方法。我使用DAO工厂方法在BO中获取DAO对象。这是一段代码,当我在eclipse中运行CPD工具时显示为冲突。它在我的DAO的大约6到8个方法中将这段代码显示为冲突

PreparedStatement statement=null;

try{

PreparedStatement statement=connection.prepareStatement(query);

//statements to set data in query

ResultSet result=statement.executeQuery();

if(result.next){

//some operation

   }
}
catch(SQLException e){

//encapsulating sql exception....


throw new BusinessException(e);

}
finally{

closeResources(connection,statement);

}
由于DAO中的许多方法使用相同的方法,CPD将上述代码显示为冲突,我认为您无法使这段代码更模块化。我的问题是,在许多方法中使用相同的变量名(如result)是否是最佳做法。要清除冲突,我需要将结果重命名为result1,结果2等,但我觉得这些名称没有意义

注意:我的培训已经结束。我没有研究Spring或Struts,我只知道Servlet和JSP。我正在做一个案例研究,这是我第一次使用PMD、CPD工具。

使用模式:

您可以这样使用您的方法:

runQuery(new Callback() {
    public void onRow(ResultSet result) {
        //extract one row here
    }
});

唯一改变的代码是各种回调实现,从不同的表中提取行。一旦您熟悉了这个模式,请查看它是围绕这个想法构建的,但是它的功能要强大得多,但仍然是低级和快速的。您不需要使用完整的代码。

谢谢您的及时回复。但我不清楚您的代码回调结果;`回调是一个引用,它是如何接受一个参数的。@user701199:我的代码中有一个错误,现在清楚了吗?传递的回调接口的单个onRow方法被多次调用。
runQuery(new Callback() {
    public void onRow(ResultSet result) {
        //extract one row here
    }
});