sql >> Database >  >> RDS >> Mysql

Welke uitvoeringsfunctie moet ik gebruiken in MySQL connector/c++?

Elk van de drie functies heeft een specifiek gebruik, dat kan worden geraden uit hun retourtype.

uitvoeren

Deze functie is de meest algemene. Het retourneert een booleaanse waarde, die waar is als de zoekopdracht meerdere resultaten oplevert, of onwaar als de zoekopdracht niets of een updatetelling oplevert.

Dit is de functie die u wilt gebruiken als u er maar één wilt gebruiken om zo algemeen mogelijk te zijn.

Als het true retourneert, moet je ResultSet * getResultSet() gebruiken om de resultaten te krijgen.
Als het false retourneert, moet u uint64_t getUpdateCount() gebruiken om het aantal bijgewerkte rijen te krijgen.

executeQuery

Deze functie retourneert direct een ResultSet wat handig is voor SELECT statements, en gaat ervan uit dat er inderdaad een resultaatset is die moet worden geretourneerd.

Het is gelijk aan het aanroepen van execute() gevolgd door getResultSet() .

U wilt deze functie gebruiken als u weet dat u SQL-code gebruikt die resultaten zoals rijen retourneert.

executeUpdate

Deze functie retourneert een geheel getal dat handig is voor UPDATE verklaringen en gaat ervan uit dat er een updatetelling is die moet worden geretourneerd.

Het is gelijk aan het aanroepen van execute() gevolgd door getUpdateCount() , ook al zijn de retourtypen om de een of andere reden anders (int vs uint64_t).

Dit is de functie die u moet gebruiken bij het uitvoeren van SQL-instructies die gegevens wijzigen en u moet weten of sommige gegevens zijn gewijzigd.

Dus,

de verenigde is in feite execute , die kan worden gebruikt om willekeurige SQL uit te voeren en het resultaat op de juiste manier af te handelen, terwijl de twee andere handige wrappers zijn als u weet wat voor soort query u uitvoert.

In uw geval, aangezien u een wrapper rond de SQL-taal schrijft, weet elk van uw functies welk soort instructie het zal uitvoeren, dus het gebruik van de gemaksfuncties stelt u in staat kortere code te schrijven.

Bijvoorbeeld:

insert(), update(), delete() ---> executeUpdate()
select()                     ---> executeQuery()



  1. zorgt het instellen van een kolom om te indexeren in een mysql-tabel voor O(1) look-ups?

  2. Gegevens exporteren van SQL Server 2005 naar MySQL

  3. Komt SQL 'EN' of 'OF' eerst?

  4. Schending integriteitsbeperking:1452 laravel