Rövid útmutató: A Csatlakozás or/C++ használatával csatlakozhat és kérdezhet le adatokat az Azure Database for MySQL-ben
A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló
Fontos
Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?
Ebben a rövid útmutatóban azt szemléltetjük, hogy miként lehet C++-alkalmazás használatával csatlakozni egy Azure Database for MySQL kiszolgálóhoz. Bemutatjuk, hogy az SQL-utasítások használatával hogyan kérdezhetők le, illeszthetők be, frissíthetők és törölhetők az adatok az adatbázisban. Ez a témakör feltételezi, hogy ismeri a C++ használatával történő fejlesztést, és még nem használta az Azure Database for MySQL-t.
Előfeltételek
Ebben a rövid útmutatóban a következő útmutatók valamelyikében létrehozott erőforrásokat használunk kiindulási pontként:
- Azure-adatbázis létrehozása MySQL-kiszolgálóhoz az Azure Portal használatával
- Azure-adatbázis létrehozása MySQL-kiszolgálóhoz az Azure CLI használatával
Emellett a következőket kell elvégezni:
- A .NET-keretrendszer telepítése
- A Visual Studio telepítése
- A MySQL-összekötő/C++ telepítése
- A Boost telepítése
Fontos
Győződjön meg arról, hogy a kiszolgáló tűzfalszabályai az Azure Portal vagy az Azure CLI használatával lettek hozzáadva a csatlakozó IP-címhez
A Visual Studio és a .NET telepítése
Az ebben a szakaszban ismertetett lépések feltételezik, hogy ismeri a .NET használatával történő fejlesztést.
Windows
- Telepítse a Visual Studio 2019 Community alkalmazást. A Visual Studio 2019 Community egy teljes funkcionalitású, bővíthető, ingyenes IDE. Ezzel az IDE-vel modern alkalmazásokat hozhat létre Android, iOS, Windows, webes és adatbázis-alkalmazások és felhőszolgáltatások számára. Telepítheti a teljes .NET-keretrendszert vagy csak a .NET Core-t: a rövid útmutatóban foglalt kódrészletek mindkettővel működnek. Ha a Visual Studio már telepítve van a számítógépén, a következő két lépés kihagyható.
- Töltse le a Visual Studio 2019 telepítőt.
- Futtassa a telepítőt, és kövesse a telepítési utasításokat a telepítés befejezéséhez.
A Visual Studio konfigurálása
- A Visual Studióból adja>>>> hozzá a "\lib\opt" könyvtárat (például: C:\Program Files (x86)\MySQL\MySQL Csatlakozás or C++ 1.1.9\lib\opt) a C++ összekötőhöz.
- A Visual Studióból a Project –> Tulajdonságok –> C/C++ – Általános –>> További belefoglalási könyvtárak:
- Adja hozzá a c++ összekötő "\include" könyvtárát (például: C:\Program Files (x86)\MySQL\MySQL Csatlakozás or C++ 1.1.9\include).
- Adja hozzá a Boost könyvtár gyökérkönyvtárát (például: C:\boost_1_64_0).
- A Visual Studióban a Project –> Tulajdonságok –> Linker –> További függőségek bevitele>, a mysqlcppconn.lib hozzáadása a szövegmezőbe.
- Másolja át a mysqlcppconn.dll fájlt a 3. lépésben szereplő C++-összekötő könyvtárából az alkalmazás futtatható fájlját tartalmazó könyvtárba, vagy adja hozzá környezeti változóként, hogy az alkalmazás megtalálhassa azt.
Kapcsolatadatok lekérése
Kérje le a MySQL-hez készült Azure Database-hez való csatlakozáshoz szükséges kapcsolatadatokat. Szüksége lesz a teljes kiszolgálónévre és a bejelentkezési hitelesítő adatokra.
- Jelentkezzen be az Azure Portalra.
- Az Azure Portal bal oldali menüjében kattintson a Minden erőforrás lehetőségre, és keressen rá a létrehozott kiszolgálóra (például mydemoserver).
- Kattintson a kiszolgálónévre.
- A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni.
Csatlakozás, táblák létrehozása és adatok beszúrása
A következő kóddal csatlakozhat, és betöltheti az adatokat a CREATE TABLE és az INSERT INTO SQL-utasításokkal. A kód az sql::Driver osztályt használja a connect() metódussal a MySQL-lel létesített kapcsolat létrehozásához. A kód ezután a createStatement() és az execute() metódust használja az adatbázis-parancsok futtatásához.
Cserélje le a gazdagép, a DBName, a Felhasználó és a Jelszó paramétert. A paramétereket lecserélheti a kiszolgáló és az adatbázis létrehozásakor megadott értékekre.
#include <stdlib.h>
#include <iostream>
#include "stdafx.h"
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/prepared_statement.h>
using namespace std;
//for demonstration only. never save your password in the code!
const string server = "tcp://yourservername.mysql.database.azure.com:3306";
const string username = "username@servername";
const string password = "yourpassword";
int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::PreparedStatement *pstmt;
try
{
driver = get_driver_instance();
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}
//please create database "quickstartdb" ahead of time
con->setSchema("quickstartdb");
stmt = con->createStatement();
stmt->execute("DROP TABLE IF EXISTS inventory");
cout << "Finished dropping table (if existed)" << endl;
stmt->execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);");
cout << "Finished creating table" << endl;
delete stmt;
pstmt = con->prepareStatement("INSERT INTO inventory(name, quantity) VALUES(?,?)");
pstmt->setString(1, "banana");
pstmt->setInt(2, 150);
pstmt->execute();
cout << "One row inserted." << endl;
pstmt->setString(1, "orange");
pstmt->setInt(2, 154);
pstmt->execute();
cout << "One row inserted." << endl;
pstmt->setString(1, "apple");
pstmt->setInt(2, 100);
pstmt->execute();
cout << "One row inserted." << endl;
delete pstmt;
delete con;
system("pause");
return 0;
}
Adatok beolvasása
A következő kóddal csatlakozhat, és beolvashatja az adatokat a SELECT SQL-utasítással. A kód az sql::Driver osztályt használja a connect() metódussal a MySQL-lel létesített kapcsolat létrehozásához. A kód ezután a prepareStatement() és az executeQuery() metódust használja a select-parancsok futtatásához. Ezután a kód a next() metódust használja az eredményekben lévő rekordokra lépéshez. Végül a kód a getInt() és a getString() metódussal elemzi a rekord értékeit.
Cserélje le a gazdagép, a DBName, a Felhasználó és a Jelszó paramétert. A paramétereket lecserélheti a kiszolgáló és az adatbázis létrehozásakor megadott értékekre.
#include <stdlib.h>
#include <iostream>
#include "stdafx.h"
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/prepared_statement.h>
using namespace std;
//for demonstration only. never save your password in the code!
const string server = "tcp://yourservername.mysql.database.azure.com:3306";
const string username = "username@servername";
const string password = "yourpassword";
int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::PreparedStatement *pstmt;
sql::ResultSet *result;
try
{
driver = get_driver_instance();
//for demonstration only. never save password in the code!
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}
con->setSchema("quickstartdb");
//select
pstmt = con->prepareStatement("SELECT * FROM inventory;");
result = pstmt->executeQuery();
while (result->next())
printf("Reading from table=(%d, %s, %d)\n", result->getInt(1), result->getString(2).c_str(), result->getInt(3));
delete result;
delete pstmt;
delete con;
system("pause");
return 0;
}
Adatok frissítése
A következő kóddal csatlakozhat, és beolvashatja az adatokat az UPDATE SQL-utasítással. A kód az sql::Driver osztályt használja a connect() metódussal a MySQL-lel létesített kapcsolat létrehozásához. A kód ezután a prepareStatement() és az executeQuery() metódust használja az update-parancsok futtatásához.
Cserélje le a gazdagép, a DBName, a Felhasználó és a Jelszó paramétert. A paramétereket lecserélheti a kiszolgáló és az adatbázis létrehozásakor megadott értékekre.
#include <stdlib.h>
#include <iostream>
#include "stdafx.h"
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/prepared_statement.h>
using namespace std;
//for demonstration only. never save your password in the code!
const string server = "tcp://yourservername.mysql.database.azure.com:3306";
const string username = "username@servername";
const string password = "yourpassword";
int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::PreparedStatement *pstmt;
try
{
driver = get_driver_instance();
//for demonstration only. never save password in the code!
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}
con->setSchema("quickstartdb");
//update
pstmt = con->prepareStatement("UPDATE inventory SET quantity = ? WHERE name = ?");
pstmt->setInt(1, 200);
pstmt->setString(2, "banana");
pstmt->executeQuery();
printf("Row updated\n");
delete con;
delete pstmt;
system("pause");
return 0;
}
Adatok törlése
A következő kóddal csatlakozhat, és beolvashatja az adatokat a DELETE SQL-utasítással. A kód az sql::Driver osztályt használja a connect() metódussal a MySQL-lel létesített kapcsolat létrehozásához. A kód ezután a prepareStatement() és az executeQuery() metódust használja a delete-parancsok futtatásához.
Cserélje le a gazdagép, a DBName, a Felhasználó és a Jelszó paramétert. A paramétereket lecserélheti a kiszolgáló és az adatbázis létrehozásakor megadott értékekre.
#include <stdlib.h>
#include <iostream>
#include "stdafx.h"
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/prepared_statement.h>
using namespace std;
//for demonstration only. never save your password in the code!
const string server = "tcp://yourservername.mysql.database.azure.com:3306";
const string username = "username@servername";
const string password = "yourpassword";
int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::PreparedStatement *pstmt;
sql::ResultSet *result;
try
{
driver = get_driver_instance();
//for demonstration only. never save password in the code!
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}
con->setSchema("quickstartdb");
//delete
pstmt = con->prepareStatement("DELETE FROM inventory WHERE name = ?");
pstmt->setString(1, "orange");
result = pstmt->executeQuery();
printf("Row deleted\n");
delete pstmt;
delete con;
delete result;
system("pause");
return 0;
}
Clean up resources
A rövid útmutató során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes