C++에서 MySQL 데이터베이스 사용 및 응용 기술
MySQL은 다양한 유형의 데이터를 저장하고 관리하는 데 사용할 수 있는 인기 있는 오픈 소스 데이터베이스 관리 시스템입니다. 이 기사에서는 C++에서 MySQL 데이터베이스를 사용하는 방법과 일부 응용 기술을 소개합니다.
MySQL C++ 커넥터 설치
먼저 MySQL C++ 커넥터를 설치해야 합니다. MySQL 공식 홈페이지(http://dev.mysql.com/downloads/connector/cpp/)에서 운영 체제 버전에 해당하는 MySQL C++ 커넥터를 다운로드할 수 있습니다. Windows에 설치한 후 Visual Studio 프로젝트의 추가 include 디렉터리와 추가 라이브러리 디렉터리에 설치 경로 아래의 include 및 lib 폴더를 추가합니다.
MySQL 데이터베이스에 연결
MySQL 데이터베이스에 연결하려면 다음 매개변수를 알아야 합니다.
- 호스트 이름: 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"은 연결할 데이터베이스의 이름입니다.
기본 SQL 쿼리 실행
MySQL 데이터베이스에 연결한 후 SQL 쿼리를 사용하여 데이터를 읽고 쓸 수 있습니다. 다음은 몇 가지 기본 SQL 쿼리 예입니다.
Query
res = stmt->executeQuery("SELECT * FROM table_name"); while (res->next()) { cout << res->getString("column_name") << endl; }
Insert
stmt->execute("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
Update
stmt->execute("UPDATE table_name SET column1='new_value' WHERE column2='value_to_update'");
Delete
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"); //做一些任务 }
MySQL 오류 처리
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL 8.4(2024년 최신 LTS 릴리스)에 도입된 주요 변경 사항 중 하나는 "MySQL 기본 비밀번호" 플러그인이 더 이상 기본적으로 활성화되지 않는다는 것입니다. 또한 MySQL 9.0에서는 이 플러그인을 완전히 제거합니다. 이 변경 사항은 PHP 및 기타 앱에 영향을 미칩니다.

PHP가 MySQL에 연결 한 후 페이지가 비어 있고 Die () 함수가 실패한 이유가 있습니다. PHP와 MySQL 데이터베이스 간의 연결을 배울 때는 종종 혼란스러운 것들이 발생합니다 ...

Redis 데이터베이스를 효과적으로 모니터링하는 것은 최적의 성능을 유지하고 잠재적인 병목 현상을 식별하며 전반적인 시스템 안정성을 보장하는 데 필수적입니다. Redis 내보내기 서비스는 다음을 사용하여 Redis 데이터베이스를 모니터링하도록 설계된 강력한 유틸리티입니다.

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

이 기사는 정량적 거래자가 올바른 플랫폼을 선택할 수 있도록 돕기 위해 세 가지 주요 거래소 인 Binance, Okx 및 Gate.io의 정량적 거래 기능을 탐구합니다. 이 기사는 먼저 정량적 거래의 개념, 장점 및 과제를 소개하고 API 지원, 데이터 소스, 백 테스트 도구 및 위험 제어 기능과 같은 우수한 정량적 거래 소프트웨어가 가져야하는 기능을 설명합니다. 그 후, 3 개의 거래소의 정량적 거래 기능을 비교하고 세부적으로 분석하여 각각 장점과 단점을 지적하고, 마침내 다른 수준의 경험을 가진 정량적 거래자에게 플랫폼 선택 제안을 제공하고, 위험 평가 및 전략적 백 테스트의 중요성을 강조했습니다. 당신이 초보자이든 숙련 된 정량적 거래자이든,이 기사는 귀중한 참조를 제공합니다.

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

이 기사에서 PHP 낙관적 잠금 및 거래와 함께 균형을 공제하는 문제에 대한 자세한 설명은 PHP, 낙관적 잠금 및 데이터베이스 트랜잭션을 사용한 균형 공제를 자세히 분석합니다.

AI 하드웨어 설계 도구에는 집적 회로 레이아웃 및 검증을 위한 Cadence Innovus 및 Synopsys IC Compiler와 같은 EDA 도구가 포함됩니다. FPGA 및 SoC 개발을 위한 Xilinx Vivado Design Suite 및 Intel FPGA SDK와 같은 SoC 설계 플랫폼입니다. TensorFlow 및 PyTorch와 같은 딥 러닝 프레임워크는 딥 러닝 모델을 구축하고 훈련하는 데 사용됩니다. Synopsys VCS 및 ModelSim과 같은 하드웨어 모델링 및 시뮬레이션 도구는 하드웨어 설계를 검증하고 시뮬레이션하는 데 사용됩니다. Chisel과 같은 다른 도구,
