"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++를 사용하여 MySQL 데이터베이스에 대한 연결을 설정하는 방법은 무엇입니까?

C++를 사용하여 MySQL 데이터베이스에 대한 연결을 설정하는 방법은 무엇입니까?

2024년 10월 31일에 게시됨
검색:795

How to Establish a Connection to a MySQL Database Using C  ?

C를 사용하여 MySQL 데이터베이스에 연결하는 방법

웹 개발 영역에서는 데이터베이스의 데이터에 액세스하고 조작해야 하는 경우가 많습니다. C는 데이터베이스에 연결하고 쿼리하는 강력한 기능을 제공합니다. 이 기사에서는 C를 사용하여 MySQL 데이터베이스에 연결하는 방법을 살펴보고 실제 코드 예제를 통해 프로세스를 보여줍니다.

전제 조건

MySQL 데이터베이스에 연결하려면, 다음 전제 조건이 필요합니다:

  • MySQL 데이터베이스 서버 실행
  • MySQL 커넥터/C 라이브러리 설치
  • C 컴파일러(예: g , clang )

연결 구축

데이터베이스에 대한 연결 구축은 데이터 액세스의 첫 번째 단계입니다. MySQL Connector/C 라이브러리는 연결을 설정하는 데 필요한 클래스와 기능을 제공합니다. 다음 코드 조각은 프로세스를 보여줍니다.

sql::Driver *driver;
sql::Connection *con;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");

이 코드에서 드라이버는 드라이버 클래스의 인스턴스이고, con은 드라이버 클래스의 인스턴스입니다. 연결 객체, get_driver_instance()는 라이브러리에서 드라이버 인스턴스를 검색합니다. 호스트, 사용자 이름 및 비밀번호를 매개변수로 사용하는 연결 기능을 사용하여 연결이 열립니다.

데이터베이스 스키마 설정

연결이 설정되면 어떤 데이터베이스 스키마를 사용할지 지정할 수 있습니다. 함께 일하고 싶습니다. 스키마는 데이터베이스 내의 객체(테이블, 뷰 등)의 논리적 컬렉션입니다. 스키마를 설정하려면 다음 코드를 사용합니다.

con->setSchema("test");

이 예에서는 "test" 스키마를 사용하지만 원하는 스키마 이름으로 변경할 수 있습니다.

쿼리 실행

이제 연결이 준비되었으므로 SQL 쿼리를 실행하여 데이터를 검색하거나 업데이트할 수 있습니다. 다음은 데이터를 선택하는 간단한 쿼리입니다:

sql::Statement *stmt;
sql::ResultSet *res;
stmt = con->createStatement();
res = stmt->executeQuery("SELECT 'Hello World!' AS _message'");

이 코드에서 stmt는 쿼리를 실행하는 데 사용되는 문 개체이고 res는 쿼리가 포함된 결과 집합입니다. results.

결과 처리

결과를 반복하고 데이터를 검색하려면 다음 코드를 사용합니다.

while (res->next()) {
    cout getString("_message") getString(1) 

여기서 while 루프는 결과 집합의 행을 반복하고 res->next()는 커서를 다음 행으로 이동합니다. res->getString()은 지정된 열(예제에서는 _message 또는 열 1)의 값을 검색합니다.

결론

MySQL 커넥터/C 라이브러리를 통합하고 위에 설명된 단계를 따릅니다. 을 사용하면 MySQL 데이터베이스에 대한 연결을 원활하게 설정하고 C 애플리케이션 내에서 데이터 작업을 수행할 수 있습니다. 적절한 리소스 관리를 보장하려면 예외를 처리하고 완료되면 연결 개체를 닫는 것을 잊지 마세요.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3