Javaの既存のコードを修正しようとしています(私が行ったことがない)、prepare文を使用していないクエリが見つかりました。 私はたくさんのコードを持っているので、できるだけ少なく修正しようとしています。 は、だからではなく、私はそのような何かをしたいと思いますprepare文:パラメータのArrayListを使用したメソッドの作成
public void executeInsertStmt(String strQuery, String param1, String param2) {
...
...
PreparedStatement preparedStatement = cnx.prepareStatement(stringRequest);
preparedStatement.setString(1, param1);
preparedStatement.setString(2, param2);
}
ようなメソッドを持っていることの(私はそれが最善の解決策であるかわかりません)。
public void executeInsertStmt(String strQuery, ArrayList<ArrayList<Object>> parameters) {
PreparedStatement preparedStatement = cnx.prepareStatement(stringRequest);
int counter=1;
for (final ArrayList<Object> eachParam : parameters) {
switch(DataTypes.valueOf(eachParam.get(0).toString().toUpperCase()))
{
case STRING:
preparedStatement.setString(counter, (String)eachParam.get(1));
break;
case DATE:
preparedStatement.setDate(counter, (Date)eachParam.get(1));
break;
case INT:
preparedStatement.setInt(counter, (Integer)eachParam.get(1));
break;
default:
preparedStatement.setString(counter, (String)eachParam.get(1));
break;
}
counter++;
}
}
そして、このような何か持っている:私は、パラメータの数が異なる多くのクエリを持っているので
strQuery = "insert into toto values (?,?)";
ArrayList<Object> paramToPass1 = new ArrayList<Object>();
paramToPass1.add("String");
paramToPass1.add("TheValueForTheString");
ArrayList<Object> paramToPass2 = new ArrayList<Object>();
paramToPass2.add("String");
paramToPass2.add("TheValueForTheString2");
ArrayList<ArrayList<Object>> paramToPass = new ArrayList<ArrayList<Object>>();
paramToPass.add(paramToPass1);
paramToPass.add(paramToPass2);
executeInsertStmt(strQuery,paramToPass);
をaproach、この種のは、私にとって最高になります。 私は各タイプのクエリに対してメソッドを実行する必要はありません。
あなたはどう思いますか?
何か問題はありますか? 最善の方法はありますか?
ありがとうございます。
私は何か類似していましたが、2つのメソッド、1つは 'List
Spring JDBCを使用することが許可されていれば、これは大幅に単純化されます。 – GriffeyDog
とにかく多くの作業を進めているなら、徐々に上位レベルのソリューションに移行してください。[jOOQ](http://www.jooq.org)、[DbUtils](http:// commons。 apache.org/dbutils/)、[spring-data](http://www.springsource.org/spring-data)、[Hibernate](http://www.hibernate.org/)などがあります。 –