C++使用MySQL Connector/C++访问mysql数据库

  1. 官网下载,分为release模式和debug模式两种,分别对应VS中的release和debug。如下图所示:
    在这里插入图片描述
    注意: 如果使用debug模式,下载的上面的release模式库文件,那么编译就会出现内存不够的问题。
  2. 打开VS,右键“工程”的“属性”,点击“C/C++”–>“常规”—>“附加包含目录”,添加Connector/C++目录下的“include”目录;如下图所示:
    在这里插入图片描述3. 点击“链接器”->“常规”->“附加目录”,添加Connector/C++目录下的“LIB/vs14/debug”,如果是x64的话,目录结构是“”lib64/vs14/debug,如下图所示:在这里插入图片描述
  3. 点击“链接器”->“输入”->“附加依赖项”,输入“mysqlcppconn.lib”。如下图所示:
    在这里插入图片描述
  4. 在Connector/C++目录的“lib64“下面找到”libssl-1_1-x64.dll”,将它放入工程根目录下
  5. 如果是debug模式,在Connector/C++目录的"lib64\debug“寻找mysqlcppconn-9-vs14.dll;如果是release模式,在相应的Connector/C++目录的"lib64“寻找mysqlcppconn-9-vs14.dll。将mysqlcppconn-9-vs14.dll放入对应的debug或者release文件夹中。
  6. 在主函数中加入头文件:#include <mysql/jdbc.h>
  7. 以下是一段示例代码:
	try {
		//初始化接口并连接
		sql::mysql::MySQL_Driver* driver;
		sql::Connection* con;
		sql::Statement* stat;
		driver = sql::mysql::get_driver_instance();
		con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
		con->setSchema("schema");//数据库名称
		//查询
		stat = con->createStatement();

		/// 准备 SQL 查询语句,并执行
		sql::Statement* stmt = con->createStatement();
		//PreparedStatement* pstmt = conn->prepareStatement("SELECT * FROM temperature ORDER BY time DESC LIMIT 1");
		sql::ResultSet* res = stmt->executeQuery("SELECT * FROM temperature ORDER BY time DESC LIMIT 1");

		// 遍历结果集,并输出查询结果
		while (res->next()) {
		    double temperature = res->getDouble("temperature");
		    string time = res->getString("time");
		    cout << "temperature: " << temperature << ", time: " << time << endl;
		}

		// 释放资源
		delete res;
		delete stmt;
		delete con;
	}
	//异常抛出
	catch (sql::SQLException& e) {
		cout << "Error: " << e.what() << endl;
	}
  1. 我遇到的难点主要是在debug模式下出现内存错误,后来发现release和debug模式需要对应不同的库文件。只要掌握了这个,就能避免错误出现。另外,看别人二次消化的内容,远不如官方文档靠谱。

相关链接:

  1. 官方文档
  2. 官网下载
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值