[c++] C++에서의 데이터베이스 연동을 위한 데이터 유형 변환 처리

C++를 사용하여 데이터베이스와 연동할 때, 데이터 유형 변환은 중요한 부분입니다. 데이터베이스와 C++ 어플리케이션 간에 데이터 유형을 변환할 수 있는 방법을 알아보겠습니다.

데이터 유형 변환이란?

데이터 유형 변환은 한 종류의 데이터를 다른 종류로 변환하는 프로세스를 말합니다. 예를 들어, C++의 int를 데이터베이스의 INTEGER로 변환하거나 그 반대로 변환하는 것입니다.

데이터베이스 연동을 위한 데이터 유형 변환 처리

데이터베이스에서 C++로의 변환

데이터베이스로부터 데이터를 읽어와서 C++ 코드에서 사용하는 경우, 데이터 유형을 변환해야 합니다. 대표적인 예로, INTEGER 타입의 데이터를 C++의 int로 변환하는 작업이 있습니다.

다음은 MySQL과 C++을 연동할 때 INTEGER 값을 int로 변환하는 예제 코드입니다.

#include <iostream>
#include <mysql/mysql.h>

int main() {
    MYSQL mysql;
    mysql_init(&mysql);

    if (mysql_real_connect(&mysql, "host", "user", "password", "database", 0, nullptr, 0)) {
        MYSQL_RES *result = mysql_store_result(&mysql);
        MYSQL_ROW row;

        while ((row = mysql_fetch_row(result))) {
            int value = atoi(row[0]);
            std::cout << "Value: " << value << std::endl;
        }

        mysql_free_result(result);
        mysql_close(&mysql);
    } else {
        std::cerr << "Failed to connect to database: " << mysql_error(&mysql) << std::endl;
    }

    return 0;
}

위 코드에서 atoi 함수를 사용하여 const char* 형태의 데이터를 int로 변환했습니다.

C++에서 데이터베이스로의 변환

C++ 어플리케이션에서 데이터를 데이터베이스에 쓸 때, C++의 데이터 유형을 데이터베이스에서 사용하는 데이터 유형으로 변환해야 합니다. 예를 들어, C++의 std::string을 데이터베이스의 VARCHAR로 변환할 수 있습니다.

아래는 MySQL에 문자열을 저장하는 예제 코드입니다.

#include <iostream>
#include <mysql/mysql.h>

int main() {
    MYSQL mysql;
    mysql_init(&mysql);

    if (mysql_real_connect(&mysql, "host", "user", "password", "database", 0, nullptr, 0)) {
        std::string data = "example string";

        std::string query = "INSERT INTO table (column_name) VALUES ('" + data + "')";
        if (mysql_query(&mysql, query.c_str()) != 0) {
            std::cerr << "Failed to insert data: " << mysql_error(&mysql) << std::endl;
        }

        mysql_close(&mysql);
    } else {
        std::cerr << "Failed to connect to database: " << mysql_error(&mysql) << std::endl;
    }

    return 0;
}

위 코드에서 std::string을 문자열 연결을 통해 SQL 쿼리에 포함시켰습니다.

마무리

C++에서 데이터베이스와의 연동을 위해 데이터 유형을 변환하는 방법에 대해 살펴봤습니다. 데이터 유형을 올바르게 변환하여 데이터를 안전하게 처리하고 저장할 수 있도록 주의해야 합니다.

참고 문헌: