使用CMake編譯MySQL客戶(hù)端程序

小樊
81
2024-09-05 21:07:26
欄目: 云計(jì)算

要使用CMake編譯MySQL客戶(hù)端程序,首先確保已經(jīng)安裝了MySQL服務(wù)器和客戶(hù)端庫(kù)

  1. 創(chuàng)建一個(gè)新的文件夾,例如mysql_client_cmake,并在其中創(chuàng)建兩個(gè)文件:CMakeLists.txtmain.cpp。

  2. 編輯CMakeLists.txt文件,添加以下內(nèi)容:

cmake_minimum_required(VERSION 3.0)
project(mysql_client_cmake)

set(CMAKE_CXX_STANDARD 11)

# 添加MySQL客戶(hù)端庫(kù)
find_package(MySQL REQUIRED)
include_directories(${MYSQL_INCLUDE_DIRS})

add_executable(mysql_client main.cpp)

# 鏈接MySQL客戶(hù)端庫(kù)
target_link_libraries(mysql_client ${MYSQL_LIBRARIES})
  1. 編輯main.cpp文件,添加以下內(nèi)容:
#include<iostream>
#include<mysqlx/xdevapi.h>

int main() {
    const std::string url = "mysqlx://username:password@localhost";
    try {
        mysqlx::Session session(url);
        mysqlx::Schema schema = session.getSchema("test");
        mysqlx::Table table = schema.getTable("test_table");

        // 插入數(shù)據(jù)
        table.insert("name", "age")
            .values("John Doe", 30)
            .execute();

        // 查詢(xún)數(shù)據(jù)
        mysqlx::RowResult result = table.select().execute();
        std::cout << "Rows in the table:"<< std::endl;
        for (const auto &row : result) {
            std::cout<< row[0].get<std::string>() << ", "<< row[1].get<int>()<< std::endl;
        }
    } catch (const std::exception &e) {
        std::cerr << "Error: " << e.what()<< std::endl;
        return 1;
    }

    return 0;
}

請(qǐng)將usernamepassword替換為實(shí)際的MySQL用戶(hù)名和密碼。

  1. 打開(kāi)終端或命令提示符,導(dǎo)航到mysql_client_cmake文件夾,然后運(yùn)行以下命令:
mkdir build
cd build
cmake ..
make
  1. 編譯完成后,運(yùn)行生成的可執(zhí)行文件:
./mysql_client

這將連接到MySQL服務(wù)器,插入數(shù)據(jù)并查詢(xún)數(shù)據(jù)。請(qǐng)注意,這個(gè)示例使用了MySQL Connector/C++ 8.0的X DevAPI,因此需要MySQL 8.0或更高版本。如果你使用的是較舊的MySQL版本,可能需要使用不同的API。

0