Cada uma das três funções tem um uso específico, que pode ser adivinhado pelo tipo de retorno.
executar
Esta função é a mais genérica. Ele retorna um valor booleano, cujo valor é true se a consulta retornar vários resultados, ou false se a consulta não retornar nada ou uma contagem de atualização.
Esta é a função que você desejará usar se quiser usar apenas uma para ser o mais genérica possível.
Se retornar true, você desejará usar
ResultSet * getResultSet()
para obter os resultados.Se retornar falso, você desejará usar
uint64_t getUpdateCount()
para obter o número de linhas atualizadas. executarConsulta
Esta função retorna diretamente um
ResultSet
que é útil para SELECT
instruções e assume que há de fato um conjunto de resultados a ser retornado. É equivalente a chamar
execute()
seguido por getResultSet()
. Você desejará usar essa função quando souber que está usando código SQL que retorna resultados como linhas.
executeUpdate
Esta função retorna um valor inteiro que é útil para
UPDATE
e assume que há uma contagem de atualização a ser retornada. É equivalente a chamar
execute()
seguido por getUpdateCount()
, embora, por algum motivo, os tipos de retorno sejam diferentes (int vs uint64_t). Esta é a função a ser usada ao executar instruções SQL que modificam dados e você precisa saber se alguns dados foram modificados.
Então,
o unificado é de fato
execute
, que pode ser usado para executar SQL arbitrário e manipular o resultado adequadamente, enquanto os outros dois são wrappers convenientes quando você sabe que tipo de consulta está executando. No seu caso, como você está escrevendo um wrapper em torno da linguagem SQL, cada uma de suas funções sabe que tipo de instrução será executada, portanto, o uso das funções de conveniência permitirá que você escreva um código mais curto.
Por exemplo:
insert(), update(), delete() ---> executeUpdate()
select() ---> executeQuery()