извлечь данные из таблицы MariaDB и записать их в структуру
Добавлено: 16 авг 2024, 12:27
Установите MySQL Connector/C++
fetch_data.cpp
Скомпилируйте программу с помощью g++:
Не забудьте заменить user, password, database_name и my_table на ваши реальные данные для подключения к базе данных и таблицы.
Код: Выделить всё
sudo apt-get install libmysqlcppconn-dev
Код: Выделить всё
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/resultset.h>
#include <iostream>
#include <vector>
// Определяем структуру для хранения данных
struct MyData {
int id;
std::string name;
double value;
};
// Функция для извлечения данных из базы данных
std::vector<MyData> fetchData() {
std::vector<MyData> data;
try {
// Создание драйвера подключения
sql::mysql::MySQL_Driver *driver;
sql::Connection *con;
// Подключение к базе данных
driver = sql::mysql::get_mysql_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "user", "password"); // Замените 'user' и 'password' на ваши данные
// Выбор базы данных
con->setSchema("database_name"); // Замените 'database_name' на имя вашей базы данных
// Создание запроса
sql::Statement *stmt = con->createStatement();
sql::ResultSet *res = stmt->executeQuery("SELECT id, name, value FROM my_table"); // Замените 'my_table' на вашу таблицу
// Чтение данных и запись в структуру
while (res->next()) {
MyData record;
record.id = res->getInt("id");
record.name = res->getString("name");
record.value = res->getDouble("value");
data.push_back(record);
}
// Освобождение ресурсов
delete res;
delete stmt;
delete con;
} catch (sql::SQLException &e) {
std::cerr << "SQL error: " << e.what() << std::endl;
}
return data;
}
int main() {
std::vector<MyData> data = fetchData();
// Вывод извлеченных данных
for (const auto &record : data) {
std::cout << "ID: " << record.id << ", Name: " << record.name << ", Value: " << record.value << std::endl;
}
return 0;
}
Код: Выделить всё
g++ -std=c++11 -o fetch_data fetch_data.cpp -lmysqlcppconn