複数のメソッドを持つDAOクラスがあります。各メソッドでは、ResultSetに変数名「result」 、PreparedStatementに「statement」を使用し、closeResources()メソッドを使用してPreparedStatementと接続を閉じました。createConnection() メソッド、getConnection() メソッドを持つ DataManager クラスを使用しました。DAO には 10 個の mwthods があります。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は上記のコードを違反として示しており、このコードをよりモジュール化する方法はないと思います.私の質問は、多くの場合「結果」のような同じ変数名を使用しています.メソッドはベストプラクティスかどうかです。違反を解消するには、「結果」の名前を「結果1」、「結果2」などに変更する必要がありますが、それらの名前は意味がないと感じています。
注: トレーニングは終了しました。Springs や Struts の作業はしていません。サーブレットと JSP しか知りません。ケース スタディを行っています。PMD、CPD ツールを使用するのはこれが初めてです。