[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 문서와 각 데이터베이스 시스템의 공식 문서를 참고하시기 바랍니다.