Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Kľúčové koncepty
* Databázové API: Sada funkcií a tried, ktoré umožňujú programu C ++ interagovať s databázami. Zahŕňa to úlohy, ako je pripojenie k databáze, vykonávanie dotazov, získavanie údajov a správa transakcií.
* Systém správy databázy (DBMS): Softvér, ktorý spravuje a ukladá údaje do databázy. Medzi populárne príklady patria MySQL, Postgresql, Oracle a SQL Server.
Populárne API databázy pre C ++
1. ODBC (Otvorená databázová pripojenie):
- silné stránky: Priemyselný štandard, široká podpora platformy (Windows, Linux, MacOS), pracuje s rôznymi DBM.
- Slabé stránky: Môže byť na použitie podrobný a zložitý, vyžaduje starostlivú správu pamäte.
- Príklad:
`` C ++
 #include  
 #include  
  
 int main () {  
 Sqlhenv Env;  
 SQLHDBC DBC;  
 SQLHSTMT STMT;  
 // ... nastavenie pripojenia ...  
  
 // Vykonajte dotaz  
 SqlexecDirect (STMT, "Select * od zákazníkov", sql_nts);  
 // ... získavanie údajov a spracovanie ...  
  
 // Vyčistenie  
 Sqlfreehandle (sql_handle_stmt, stmt);  
 // ... zatvoriť pripojenie ...  
 návrat 0;  
 }  
 `` `  
  
 2.  JDBC (pripojenie databázy Java):  
 -  silné stránky: Podobné ODBC, ale predovšetkým pre Java; široko používané, vynikajúce pre aplikácie založené na Java.  
 -  Slabé stránky: Nie natívny C ++; vyžaduje virtuálny stroj Java (JVM).  
 -  Príklad:  
 `` C ++  
 #include  
 #include  
  
 // ... kód Java na pripojenie k databáze ...  
  
 extern "c" jniexport void jnicall java_myclass_executequery (jnienv* env, jobject obj, jString query) {  
 // ... prevod reťazca dotazov na C ++ ...  
 // ... Vykonajte dotaz pomocou JDBC ...  
 // ... Výsledky procesu ...  
 }  
 `` `  
  
 3.  MySQL Connector/C ++:  
 -  silné stránky: Špeciálne navrhnuté pre MySQL, efektívne, poskytuje API C ++-podobne.  
 -  Slabé stránky: Obmedzené na mysql.  
 -  Príklad:  
 `` C ++  
 #include  
  
 int main () {  
 Mysql* conn =mysql_init (null);  
 // ... nastavenie pripojenia ...  
  
 // Vykonajte dotaz  
 mysql_query (conn, "select * od zákazníkov");  
 Mysql_res* result =mysql_store_result (conn);  
 // ... získavanie údajov a spracovanie ...  
  
 // Vyčistenie  
 mysql_free_result (výsledok);  
 mysql_close (conn);  
 návrat 0;  
 }  
 `` `  
  
 4.  Postgresql Knižnice klientov:  
 -  silné stránky: Natívne knižnice C ++ pre PostgreSQL, efektívne, poskytujú jasné API.  
 -  Slabé stránky: Obmedzené na PostgreSQL.  
 -  Príklad:  
 `` C ++  
 #vrátane  
  
 int main () {  
 Pgconn* conn =pQConnectDB ("dbname =myDatabase user =myUser");  
 if (pqstatus (conn)! =connection_ok) {  
 // ... rukoväť chyby pripojenia ...  
 }  
  
 // Vykonajte dotaz  
 Pgresult * result =pQexec (conn, "select * od zákazníkov");  
 // ... získavanie údajov a spracovanie ...  
  
 // Vyčistenie  
 PQClear (výsledok);  
 Pqfinish (conn);  
 návrat 0;  
 }  
 `` `  
  
 5.  SQLite3 C ++ API:  
 -  silné stránky: Vstavaná databáza, ľahká, ľahko použiteľná, nevyžaduje sa žiadne nastavenie servera.  
 -  Slabé stránky: Obmedzené funkcie v porovnaní s plnohodnotnými DBM.  
 -  Príklad:  
 `` C ++  
 #include  
  
 int main () {  
 SQLite3* db;  
 char* errmsg =0;  
 // ... Otvorte databázu ...  
  
 // Vykonajte dotaz  
 SQLite3_exec (db, "Create Table, ak neexistuje zákazníci (názov text, e -mailový text)", 0, 0, &errmsg);  
 // ... vkladanie údajov a získavanie ...  
  
 // Vyčistenie  
 sqlite3_close (db);  
 návrat 0;  
 }  
 `` `  
  
  Výber správneho API   
  
 *  dbms: Výber API závisí od DBMS, ktorý používate.  
 *  Platforma: Zvážte operačný systém a rozvojové prostredie.  
 *  Vlastnosti: Preskúmajte funkcie, ktoré ponúka každé API, vrátane schopností dotazov, typov údajov, správy transakcií a výkonu.  
 *  zložitosť: Vyhodnoťte ľahkosť použitia a zložitosť API.  
  
  Ďalšie úvahy   
  
 *  orm (mapovanie relatívnej osoby): Knižnice ako ORM Frameworks (napr. QTSQL, Boost.spirit.qi) môžu zjednodušiť interakcie databázy mapovaním databázových tabuliek na objekty C ++.  
 *  Databázové ovládače: Uistite sa, že máte nainštalované potrebné ovládače databázy pre vybrané API a DBMS.  
  
 Neváhajte a opýtajte sa, či máte konkrétnejšie otázky alebo by ste chceli hlbšie vysvetlenia niektorého z týchto API.