Ich werde C / C ++ benutzen und würde gerne wissen, wie man am besten mit einem MySQL-Server kommuniziert. Sollte ich die Bibliothek verwenden, die mit der Serverinstallation geliefert wird? Sind das irgendwelche guten Bibliotheken, die ich als eine andere betrachten sollte?
Das hängt ein bisschen davon ab, was Sie tun wollen.
Zuerst checken Sie Bibliotheken aus, die Verbindungen zu mehr als einer DBMS-Plattform bereitstellen. Zum Beispiel macht es Qt sehr einfach, sich mit MySQL, MS SQL Server und einigen anderen zu verbinden und den Datenbanktreiber (Verbindungstyp) zur Laufzeit zu ändern - mit nur ein paar Zeilen Code.
MySQL-spezifische Bibliotheken sind in Ordnung, aber denken Sie daran, dass Sie sich auf eine DB-Implementierung beschränken - wenn Sie jemals in der Zukunft Änderungen vornehmen müssen, wird es eine Menge Arbeit sein - selbst wenn Sie Ihren Code so entwerfen dass das DB-spezifische Zeug hinter einer Fassade ist. Warum nicht eine Bibliothek verwenden, die Konnektivität zu mehreren Plattformen bietet, und sich die Mühe ersparen?
OTL ist eine solide Cross-DBMS-Lösung für C ++, die mein Projekt seit Jahren verwendet. Wir verwenden es, um mit SQL Server (über ODBC) und Oracle (über OCI) zu kommunizieren. Es ist relativ einfach zu fahren und enthält eine große Anzahl von Beispielen für alle unterstützten Datenbanken.
Mit den eigenen Client-Bibliotheken von MySQL ist nichts falsch. Wenn Sie sich für reduzierte Funktionalität entscheiden, können Sie sich mit ODBC, UDBC, apr_dbd oder eine andere Datenbank-Abstraktionsbibliothek (wie die OTL, die bereits angeboten wird).
Dies wird den Wechsel zu einem Back-End erleichtern, aber, wie ich bereits erwähnte, auf Kosten von weniger Funktionalität im Vergleich zu dem des nativen Clients. Da sich die DB-Anbieter unterscheiden, können die Abstraktions-Bibliotheken nur die Funktionen anbieten, die allen (oder den meisten) Back-Ends gemeinsam sind. Ob Sie lieber für eine bestimmte DB optimieren oder lieber Back-Ends wechseln möchten, bleibt Ihnen überlassen (und vielleicht auch Ihrem Manager).