如何将ArrayList
as 参数传递StoredProcedure
给 Java 类?
我有一个StoredProcedure
调用数据库的方法,如下面的代码所示:
public void insertFileDownload(ArrayList<String> spareaList, ArrayList<String> spcollrtList, ArrayList<String> spmaintRtList, ArrayList<String> spenfRtList) {
if (spareaList != null) {
for (String a : spareaList) {//for Areas
Map<String, Object> param = new HashMap<String, Object>();
param.put("areaName", a);
param.put("collroutesName", null);
param.put("maintrtsName", null);
param.put("enfrtsName", null);
genericDao.sqlQueryWithParameters(" {call sp_addMeterJob(:areaName,:collroutesName,:maintrtsName,:enfrtsName) }", param);
}
} else if (spcollrtList != null) {//for CollectionRoutes
for (String cllRt : spcollrtList) {
Map<String, Object> param = new HashMap<String, Object>();
param.put("areaName", null);
param.put("collroutesName", cllRt);
param.put("maintrtsName", null);
param.put("enfrtsName", null);
genericDao.sqlQueryWithParameters(" {call sp_addMeterJob(:areaName,:collroutesName,:maintrtsName,:enfrtsName) }", param);
}
..........
目前,我使用 if else 条件 4 次来检查每个传入的数组列表参数,以将值设置为存储过程的参数。
有没有其他更好的方法可以避免许多 if else 块?