Мои шаги:
- Я использую
namedJDBCtemplate
, чтобы выбрать записи из таблицы. - Использование вызываемого интерфейса и службы исполнения Java Я пытаюсь обновить и вставить еще несколько таблиц, используя
namedJDBCtemplate
.
Ошибка: каждый параметр устанавливается, но я получаю исключение при выполнении запроса на обновление / вставку.Код исключения: null
SQL Exception while Updating database sql Message UpdatePlanStat()--> null
Первый класс, который отправляет вызываемый класс для обновления базы данных.Этот класс сначала вызывает DAOimpl
для выбора данных из базы данных, как только он получает полный список, он перебирает весь список и выполняет метод вызова, используя службу executor для каждой строки, чтобы обновить / вставить базу данных.
Все для запроса вставки и обновления заполняется правильно, но не обновляет базу данных.Я что-то здесь упускаю?
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();
}