使用C++ X DevAPI连接MySQL8

使用C++ X DevAPI连接MySQL8

预备需求

测试环境:

  • Windows 10 64位
  • Visual Studio 2019
  • CMake 3.17.3(使用CMake构建时需要)
  • MySQL 8.0.20

其他平台请参考官方文档https://dev.mysql.com/doc/connector-cpp/8.0/en/

第1步 获得C++连接器

第2步 构建C++项目

方式1 使用Visual Studio 2019构建

1. 创建一个新的C++空项目

在这里插入图片描述

添加源文件并输入以下测试代码

#include <iostream>
#include <string>
#include <list>
#include <cstdlib>

#include <mysqlx/xdevapi.h>

using namespace mysqlx;

int main() {
    // 修改控制台编码
    std::system("chcp 65001");
    
    try {
        // 改成你的信息
        Session sess(SessionOption::USER, "root",
                     SessionOption::PWD, "123456",
                     SessionOption::HOST, "localhost",
                     SessionOption::PORT, 33060,
                     SessionOption::DB, "test");

        auto result = sess.sql("select * from user").execute();

        for (auto row : result.fetchAll()) {
            std::cout << row[0] << " " << row[1] << " " << row[2] << "\n";
        }
        
    } catch (const std::exception& e) {
        std::cerr << e.what() << '\n';
    }
}

在这里插入图片描述

2. 将下载的C++连接器添加到项目根目录下(.sln所在目录)

在这里插入图片描述

3. 修改项目为x64、Release模式(重要)

在这里插入图片描述

4.1 使用动态链接方式构建

  1. 添加include目录(也就是连接器的include目录)

在这里插入图片描述

  1. 添加库目录(也就是连接器的lib64/vs14目录)

在这里插入图片描述

  1. 添加静态库mysqlcppconn8.lib(注意后面有个8)

在这里插入图片描述

  1. 构建(快捷键F7)

  2. 拷贝mysqlcppconn8-2-vs14.dll到生成的.exe文件目录下(重要!)

在这里插入图片描述

  1. 运行(快捷键Ctrl + F5)

在这里插入图片描述

4.2 使用静态链接方式构建

  1. 添加include目录(也就是连接器的include目录)

在这里插入图片描述

  1. 添加库目录(也就是连接器的lib64/vs14目录)

在这里插入图片描述

  1. 添加静态库mysqlcppconn8-static.lib(注意后面为8-static)和dnsapi.ib(重要)

在这里插入图片描述

  1. 添加STATIC_CONCPP预处理器定义(重要)

在这里插入图片描述

  1. 运行(快捷键Ctrl + F5)

在这里插入图片描述

方式2 使用CMake构建

思路与使用Visual Studio 2019相同,下面给出静态链接方式构建的CMakeLists代码

cmake_minimum_required(VERSION 3.0.0)
project(TestMySql)

add_executable(TestMySql main.cpp)

include_directories(${CMAKE_SOURCE_DIR}/include)
add_compile_definitions(STATIC_CONCPP)

target_link_directories(TestMySql PUBLIC ${CMAKE_SOURCE_DIR}/lib64/vs14/)
target_link_libraries(TestMySql mysqlcppconn8-static.lib dnsapi.lib)
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页