- 去官网下载,分为release模式和debug模式两种,分别对应VS中的release和debug。如下图所示:
注意: 如果使用debug模式,下载的上面的release模式库文件,那么编译就会出现内存不够的问题。 - 打开VS,右键“工程”的“属性”,点击“C/C++”–>“常规”—>“附加包含目录”,添加Connector/C++目录下的“include”目录;如下图所示:
3. 点击“链接器”->“常规”->“附加目录”,添加Connector/C++目录下的“LIB/vs14/debug”,如果是x64的话,目录结构是“”lib64/vs14/debug,如下图所示: - 点击“链接器”->“输入”->“附加依赖项”,输入“mysqlcppconn.lib”。如下图所示:
- 在Connector/C++目录的“lib64“下面找到”libssl-1_1-x64.dll”,将它放入工程根目录下
- 如果是debug模式,在Connector/C++目录的"lib64\debug“寻找mysqlcppconn-9-vs14.dll;如果是release模式,在相应的Connector/C++目录的"lib64“寻找mysqlcppconn-9-vs14.dll。将mysqlcppconn-9-vs14.dll放入对应的debug或者release文件夹中。
- 在主函数中加入头文件:
#include <mysql/jdbc.h>
- 以下是一段示例代码:
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;
}
- 我遇到的难点主要是在debug模式下出现内存错误,后来发现release和debug模式需要对应不同的库文件。只要掌握了这个,就能避免错误出现。另外,看别人二次消化的内容,远不如官方文档靠谱。
相关链接: