본문 바로가기
Unreal/C++ 서버

C++를 사용하여 Database for MySQL

by 보안매크로 2024. 3. 23.
728x90

Visual Studio에서 해당 설정을 진행해주자.
mysql-connector-c++-8.2.0-winx64을 C:\Program Files\MySQL\mysql-connector-c++-8.2.0-winx64 경로에 설치했다고 가정합니다.

1. 상단에 프로젝트(Project) > 프로퍼티(Property)에 들어간다. C/C++ > General에서 Additional Include Directories에 C:\Program Files\MySQL\mysql-connector-c++-8.2.0-winx64\include\jdbc 를 입력해준다.

 

2. Preprocessor > Preprocessor Definitions 에 STATIC_CONCPP; 를 추가해준다. 정적으로 링킹해주는 것.

3./MD 사용해주자

4. C:\Program Files\MySQL\mysql-connector-c++-8.2.0-winx64\lib64\vs14 를 링크해준다.

5. mysqlcppconn-static.lib를 추가해준다.

6. 아래 테스트 코드를 작성한다.

#include <stdlib.h>
#include <iostream>
#include "stdafx.h"

#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/prepared_statement.h>
using namespace std;

//for demonstration only. never save your password in the code!
const string server = "tcp://yourservername.mysql.database.azure.com:3306";
const string username = "username@servername";
const string password = "yourpassword";

int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::PreparedStatement *pstmt;

try
{
driver = get_driver_instance();
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}

//please create database "quickstartdb" ahead of time
con->setSchema("quickstartdb");

stmt = con->createStatement();
stmt->execute("DROP TABLE IF EXISTS inventory");
cout << "Finished dropping table (if existed)" << endl;
stmt->execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);");
cout << "Finished creating table" << endl;
delete stmt;

pstmt = con->prepareStatement("INSERT INTO inventory(name, quantity) VALUES(?,?)");
pstmt->setString(1, "banana");
pstmt->setInt(2, 150);
pstmt->execute();
cout << "One row inserted." << endl;

pstmt->setString(1, "orange");
pstmt->setInt(2, 154);
pstmt->execute();
cout << "One row inserted." << endl;

pstmt->setString(1, "apple");
pstmt->setInt(2, 100);
pstmt->execute();
cout << "One row inserted." << endl;

delete pstmt;
delete con;
system("pause");
return 0;
}

실행해보면 정상적으로 아래표처럼 나온다.

728x90

'Unreal > C++ 서버' 카테고리의 다른 글

CMD에서 MYSQL DB 명령어  (0) 2024.03.31
Debug 모드, Release 모드 특징  (0) 2024.03.24
MYSQL 설치 후 진행과정  (0) 2024.03.17
Mongocxx Driver 설치  (0) 2024.03.16
mongocxx(v3) 드라이버 제거 방법  (0) 2024.03.09