Cada una de las tres funciones tiene un uso específico, que se puede adivinar a partir de su tipo de retorno.
ejecutar
Esta función es la más genérica. Devuelve un valor booleano, cuyo valor es verdadero si la consulta devuelve varios resultados, o falso si la consulta no devuelve nada o un recuento de actualizaciones.
Esta es la función que querrá usar si solo quiere usar una para que sea lo más genérico posible.
Si devuelve verdadero, querrá usar ResultSet * getResultSet()
para obtener los resultados.
Si devuelve falso, querrá usar uint64_t getUpdateCount()
para obtener el número de filas actualizadas.
ejecutar consulta
Esta función devuelve directamente un ResultSet
que es útil para SELECT
declaraciones, y asume que de hecho hay un conjunto de resultados para ser devuelto.
Es equivalente a llamar a execute()
seguido de getResultSet()
.
Querrá usar esta función cuando sepa que está usando código SQL que devuelve resultados como filas.
ejecutar Actualización
Esta función devuelve un valor entero que es útil para UPDATE
declaraciones y asume que hay un conteo de actualizaciones para ser devuelto.
Es equivalente a llamar a execute()
seguido de getUpdateCount()
, aunque, por algún motivo, los tipos de devolución son diferentes (int frente a uint64_t).
Esta es la función a utilizar cuando se ejecutan sentencias SQL que modifican datos y necesita saber si se modificaron algunos datos.
Entonces,
el unificado es de hecho execute
, que se puede usar para ejecutar SQL arbitrario y manejar el resultado de manera adecuada, mientras que los otros dos son contenedores convenientes cuando sabe qué tipo de consulta ejecuta.
En su caso, dado que está escribiendo un contenedor en torno al lenguaje SQL, cada una de sus funciones sabe qué tipo de declaración ejecutará, por lo que el uso de las funciones de conveniencia le permitirá escribir un código más corto.
Por ejemplo:
insert(), update(), delete() ---> executeUpdate()
select() ---> executeQuery()