宝塔山 发表于 2024-7-29 18:59:36

Mysql Connector/c++库的下载和利用(Windows)

情况配置

情况:windows10, visual studio 2019,已安装mysql server 版本为8.0.36,项目配置visual studio解决方案时,利用的Release x64
下载Mysql Connector/c++

mysql官方提供了connector/c++版本,connector是mysql官方提供的驱动数据库的工具(api),connector支持c++,提供库文件和头文件,来利用。
https://dev.mysql.com/downloads/connector/cpp/
此处下载了压缩包的版本 mysql-connector-c+±8.3.0-winx64
https://i-blog.csdnimg.cn/blog_migrate/d33294b413fbd8ccc0cb6b17e3ca4621.png
向项目中添加头文件和库文件(配置解决方案)



[*]附加包罗目录设置解压后的include路径:
https://i-blog.csdnimg.cn/blog_migrate/393e90869c7330fc470dfa55b75982b1.png
[*]附加库目录设置解压后的lib/64/vs14路径
https://i-blog.csdnimg.cn/blog_migrate/86129ea9fb7de0ac329ff6ce8e1dfdbf.png
[*]附加依赖项设置
https://i-blog.csdnimg.cn/blog_migrate/bf0aa386898d1abcdede2966af06a213.png
[*]拷贝解压后的lib64目录下的所有.dll到与main函数文件同级的目录下 (大概放到.exe同级的目录也可以)
https://i-blog.csdnimg.cn/blog_migrate/e566da401271efabe277355909b32711.png
[*]测试下如下代码能不能正常编译
#include "jdbc/mysql_driver.h"
#include "jdbc/mysql_connection.h"
#include "jdbc/cppconn/driver.h"
#include "jdbc/cppconn/connection.h"
#include "jdbc/cppconn/statement.h"
#include "jdbc/cppconn/prepared_statement.h"
#include "jdbc/cppconn/resultset.h"
#include "jdbc/cppconn/metadata.h"
#include "jdbc/cppconn/resultset_metadata.h"
#include "jdbc/cppconn/exception.h"
#include "jdbc/cppconn/warning.h"

#include <mysql/jdbc.h>

#define DBHOST "tcp://127.0.0.1:3306"
#define USER "root"
#define PASSWORD "123456"
#define DATABASE "sys"

using namespace std;
using namespace sql;

int main()
{
    try
    {
      //连接数据库
      Driver* driver = get_driver_instance();
      Connection* conn = driver->connect(DBHOST, USER, PASSWORD);
      Statement* stm;
      if (!conn->isValid()) {
            cout << "数据库连接无效" << endl;
            return 0;
      }
      else
            cout << "数据库连接成功" << endl;
      //创建 test 表,添加数据
      stm = conn->createStatement();
      stm->execute("use " DATABASE);
      stm->execute("DROP TABLE IF EXISTS test");
      stm->execute("CREATE TABLE test(id INT,lable CHAR(1))");
      stm->execute("INSERT INTO test(id,lable) VALUES(6,'A')");
      stm->execute("INSERT INTO test(id,lable) VALUES(3,'A')");
      stm->execute("INSERT INTO test(id,lable) VALUES(2,'A')");

      //升序查询
      ResultSet* rss;
      rss = stm->executeQuery("SELECT id,lable FROM test ORDER BY id ASC");
      while (rss->next())
      {
            /* code */

            int id = rss->getInt(1);
            string lable = rss->getString("lable");

            cout << "id:" << id << ","
                << "lable:" << lable << endl;
      }
      
      //删除
      stm->execute("DELETE FROM test WHERE id=3");

      //改
      stm->execute("UPDATE test SET lable='B' WHERE id=2");

      delete stm;
      delete conn;
      delete rss;

    }
    catch (const SQLException& sqle)
    {
      cout << "# ERR: SQLException in " << __FILE__;
      cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
      std::cerr << "sql errcode:" << sqle.getErrorCode() << ",state:" << sqle.getSQLState() << ",what:" << sqle.what() << endl;
    }

    return 0;
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Mysql Connector/c++库的下载和利用(Windows)