использование NamedJdbctemplate с использованием сервиса Executor и интерфейса Callable - PullRequest
0 голосов
/ 01 февраля 2019

Мои шаги:

  1. Я использую namedJDBCtemplate, чтобы выбрать записи из таблицы.
  2. Использование вызываемого интерфейса и службы исполнения 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();          
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...