我的步骤:
namedJDBCtemplate
从表中选择记录。 namedJDBCtemplate
更新并在更多表中插入。 错误:每个参数都已设置,但是执行更新/插入查询时出现异常。异常代码为空
SQL Exception while Updating database sql Message UpdatePlanStat()--> null
提交可调用类以更新数据库的第一个类。此类首先调用DAOimpl
从数据库中选择数据,一旦获得完整的列表,它将遍历整个列表并使用执行程序服务为每行执行调用方法以更新/插入数据库。
有关插入和更新查询的所有信息均已正确填充,但未更新数据库。我在这里想念东西吗?
public class GetIDStatus {
@Autowired
PDao pdao;
public void getData() throws InterruptedException, ExecutionException {
try
{
pid = pdao.findall();
for (Pid pidx : pid) {
setPHist(pidx); // Setting the object
setPid(pidx);
PDao pdaou = new PDao(pidx, pidxh); //passing constructor
Future<String> processid = executorService.submit(pdaou);
updstatlist.add(processid);
}
validateExecutor();
}
catch (SQLException e)
{
logger.info("SQL Exception while select" + e.getMessage());
}
}
public void validateExecutor() throws InterruptedException, ExecutionException
{
for(Future<String> fut :updstatlist)
{
if (fut.get().equals("Sucess"))
{
updcnt = updcnt + 1;
staleplanibcprocess.setPostreccount(updcnt);
} else
{
updcnt = updcnt + 1;
staleplanibcprocess.setPostreccount(updcnt);
fileprocessor.writeReprocessFile(fut.get());
}
}
executorService.shutdown();
}
}
@Repository
public class PDao implements IDDao,PIDHistDao, Callable <String>{
@Autowired
Pidxh pidxh;
@Autowired
Pidx pidx;
private final String UPDATE_SQL= "";
private final String INSERT_HIST = "";
@Autowired
private NamedParameterJdbcTemplate namedJdbcTemplate;
public PDao(Pidx pidx, Pidxh pidxh) {
super();
this.pidx = pidx;
this.pidxh = pidxh;
}
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
update();
if (getPlngrpst().equals("Sucess"))
{
insert();
}
return getPlngrpst();
}
public String update() throws SQLException, RuntimeException {
try {
SqlParameterSource namedParametersupdate = new MapSqlParameterSource().addValue(":")
.addValue(";"))
.addValue(";")
.addValue("'");
this.namedJdbcTemplate.update(UPDATE_SQL,namedParametersupdate);
logger.info("------------> after update");
setPlngrpst("Sucess");
}
catch (RuntimeException r)
{
setPlngrpst(";");
}
return getPlngrpst();
}