[c++] C++로 리눅스에서의 데이터베이스 접근하기

리눅스 환경에서 데이터베이스에 접근하기 위해서는 C++ 언어를 사용하여 데이터베이스와의 연동이 가능합니다. 여러 가지 데이터베이스 시스템이 리눅스에서 사용 가능하며, 대표적으로 MySQL, PostgreSQL, SQLite 등이 있습니다. 각 데이터베이스 시스템에 따라 다르지만, 보편적으로 ODBC(Open Database Connectivity) 드라이버를 사용하여 C++ 언어로 데이터베이스에 접근할 수 있습니다.

ODBC드라이버 설치

ODBC 드라이버는 다양한 데이터베이스 시스템과 연결하기 위한 표준 인터페이스이며, 리눅스에서 ODBC 드라이버를 설치하여 C++ 언어로 데이터베이스에 접근할 수 있습니다. 아래는 리눅스에서 MySQL ODBC 드라이버를 설치하는 예제입니다.

sudo apt-get install unixODBC-dev
sudo apt-get install libmyodbc

C++에서 ODBC 사용

C++에서 ODBC를 사용하여 데이터베이스에 접근하기 위해서는 ODBC API를 활용해야 합니다. 아래는 C++로 MySQL 데이터베이스에 접속하는 간단한 예제 코드입니다.

#include <iostream>
#include <sql.h>
#include <sqlext.h>

int main() {
    SQLHENV henv;
    SQLHDBC hdbc;
    SQLRETURN ret;

    SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
    SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    ret = SQLDriverConnect(hdbc, NULL, (SQLCHAR*)"DRIVER={MySQL ODBC 8.0 Driver};SERVER=localhost;DATABASE=mydb;UID=user;PWD=password;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
    if (SQL_SUCCEEDED(ret)) {
        std::cout << "Connected to database" << std::endl;
    } else {
        std::cerr << "Failed to connect to database" << std::endl;
    }

    SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    SQLFreeHandle(SQL_HANDLE_ENV, henv);
    return 0;
}

위 예제에서는 MySQL ODBC 드라이버를 사용하여 mydb 데이터베이스에 user로 접속하는 예제 코드입니다.

이와 같이 C++ 언어를 사용하여 ODBC를 통해 리눅스에서 데이터베이스에 접근할 수 있습니다.

자세한 내용은 ODBC 문서와 각 데이터베이스 시스템의 공식 문서를 참고하시기 바랍니다.