MySQL은 다양한 유형의 데이터를 저장하고 관리하는 데 사용할 수 있는 인기 있는 오픈 소스 데이터베이스 관리 시스템입니다. 이 기사에서는 C++에서 MySQL 데이터베이스를 사용하는 방법과 일부 응용 기술을 소개합니다.
먼저 MySQL C++ 커넥터를 설치해야 합니다. MySQL 공식 홈페이지(http://dev.mysql.com/downloads/connector/cpp/)에서 운영 체제 버전에 해당하는 MySQL C++ 커넥터를 다운로드할 수 있습니다. Windows에 설치한 후 Visual Studio 프로젝트의 추가 include 디렉터리와 추가 라이브러리 디렉터리에 설치 경로 아래의 include 및 lib 폴더를 추가합니다.
MySQL 데이터베이스에 연결하려면 다음 매개변수를 알아야 합니다.
다음 코드를 사용하여 MySQL 데이터베이스에 연결하세요.
#include <iostream> #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> using namespace std; int main() { sql::Driver* driver; sql::Connection* con; sql::Statement* stmt; sql::ResultSet* res; driver = get_driver_instance(); con = driver->connect("tcp://localhost:3306", "username", "password"); stmt = con->createStatement(); stmt->execute("USE database_name"); // 这里可以执行需要的操作 delete res; delete stmt; delete con; return 0; }
여기서 "tcp://localhost:3306"은 로컬 MySQL 서버에 연결하기 위한 기본 포트를 나타내고 "username" 및 "password"는 사용자 이름입니다. 및 데이터베이스에 연결할 때 사용되는 비밀번호, "database_name"은 연결할 데이터베이스의 이름입니다.
MySQL 데이터베이스에 연결한 후 SQL 쿼리를 사용하여 데이터를 읽고 쓸 수 있습니다. 다음은 몇 가지 기본 SQL 쿼리 예입니다.
res = stmt->executeQuery("SELECT * FROM table_name"); while (res->next()) { cout << res->getString("column_name") << endl; }
stmt->execute("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
stmt->execute("UPDATE table_name SET column1='new_value' WHERE column2='value_to_update'");
stmt->execute("DELETE FROM table_name WHERE column='value_to_delete'");
데이터를 삭제하거나 업데이트하기 전에 먼저 SELECT 문을 사용하여 쿼리하여 삭제하려는 데이터가 있는지 확인해야 합니다. 또는 업데이트가 존재합니다.
executeQuery를 사용하여 SELECT 쿼리를 실행한 후 ResultSet 개체를 사용하여 결과 집합을 얻을 수 있습니다. ResultSet 클래스는 가져오려는 열의 데이터 유형에 따라 다양한 유형의 데이터를 가져오는 다양한 메서드를 제공합니다. 다음은 몇 가지 예입니다.
res = stmt->executeQuery("SELECT * FROM table_name"); //获取int类型数据 int c1 = res->getInt("column1"); //获取string类型数据 string c2 = res->getString("column2"); //获取double类型的数据 double c3 = res->getDouble("column3");
while 루프를 사용하여 결과 집합의 모든 데이터를 읽을 수 있습니다.
while (res->next()) { int c1 = res->getInt("column1"); string c2 = res->getString("column2"); double c3 = res->getDouble("column3"); //做一些任务 }
C++에서 MySQL을 사용할 때 오류는 일반적으로 다음을 통해 처리할 수 있습니다.
try { //需要执行的语句 } catch (sql::SQLException& e) { //发生错误时的处理 cout << "MySQL Error: " << e.what() << endl; }
In a try block catch 블록에서 SQLException이 발생할 수 있는 문을 실행한 후 catch 블록에서 오류를 처리합니다. 오류 메시지는 catch 블록의 e.what()을 사용하여 얻을 수 있습니다.
MySQL 데이터베이스는 일련의 작업을 단일 논리 단위로 수행할 수 있는 트랜잭션을 지원합니다. 이러한 작업 중 하나라도 실패하면 모든 작업은 트랜잭션이 시작되기 전 상태로 롤백됩니다. 다음과 같은 경우 트랜잭션을 사용하는 방법:
sql::Savepoint* savepoint = con->setSavepoint(); try { stmt->execute("UPDATE table_name SET column1='new_value' WHERE column2='value_to_update'"); stmt->execute("INSERT INTO table_name (column1, column2) VALUES ('value', 'value')"); con->commit(); } catch (sql::SQLException& e) { con->rollback(savepoint); }
트랜잭션으로 작동해야 하는 명령문을 실행하기 전에 먼저 연결 개체(con)에 저장점(savepoint)을 설정합니다. 모든 명령문이 성공적으로 실행된 후 연결 개체의 commit() 메서드를 사용하여 트랜잭션을 커밋합니다. 실행에 실패한 명령문이 있으면 연결 개체의 rollback(savepoint) 메서드를 사용하여 모든 변경 사항을 롤백하고 실행 취소합니다.
C++에서 MySQL 데이터베이스를 사용하면 데이터를 저장하고 검색할 수 있을 뿐만 아니라 트랜잭션 및 오류 처리를 사용하여 데이터 무결성과 정확성을 보장할 수도 있습니다. 이 문서에서는 MySQL 데이터베이스에 연결하고, 기본 SQL 쿼리를 실행하고, 쿼리 결과를 처리하고, MySQL 오류를 처리하고, 트랜잭션을 사용하는 방법을 설명합니다. 이 팁이 MySQL 데이터베이스를 사용하는 C++ 개발자에게 도움이 되기를 바랍니다.
위 내용은 C++에서 MySQL 데이터베이스 사용 및 응용 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!