[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++에서 데이터베이스와의 연동을 위해 데이터 유형을 변환하는 방법에 대해 살펴봤습니다. 데이터 유형을 올바르게 변환하여 데이터를 안전하게 처리하고 저장할 수 있도록 주의해야 합니다.
참고 문헌: