基於JDBC下C++連接MySQL數據庫的解決方法

                                       後端開發過程遇到的問題總結(3)

       這個東西真給我搞吐了,網上找了很多方法,最終在同學的幫助下終於解決了此問題!話不多說,直接上方法!

       (1)下載MySQL Connector C++和boost庫,我使用的是MySQL Connector C++ 1.1.12版本的庫,下載好以後進入vs2017,選擇項目屬性-》C/C++-》常規-》附加包含目錄,然後導入下載的庫,如圖:

(2)鏈接器-》常規-》附加庫目錄,如圖:

(3)鏈接器-》輸入-》附加依賴項,輸入以下兩行,如圖:

配置完成!!使用時添加頭文件:

#pragma once
#include <iostream>
#include "mysql_connection.h"
#include "mysql_driver.h"
#include "mysql_error.h"

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

#pragma comment(lib,"..\\lib\\opt\\mysqlcppconn.lib")

 測試代碼如下:

 實現MySQL查詢功能:

//頭文件
#pragma once
#include <iostream>
#include "mysql_connection.h"
#include "mysql_driver.h"
#include "mysql_error.h"

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

#pragma comment(lib,"..\\lib\\opt\\mysqlcppconn.lib")

using namespace std;

class MysqlQuery
{
public:
	MysqlQuery();
	~MysqlQuery();

	sql::Driver *driver;
	sql::Connection *con;
	sql::Statement *stmt;
	//sql::ResultSet *res;

	sql::ResultSet * Query(string sql);
};



//cpp文件
#include "stdafx.h"
#include "MysqlQuery.h"


MysqlQuery::MysqlQuery()
{
	driver = get_driver_instance();
	con = driver->connect("****", "****", "****"); // 需要修改爲你數據庫的ip地址和用戶密碼
	/* 連接 MySQL 數據庫 university  */
	con->setSchema("dcxm");
	stmt = con->createStatement();
}


MysqlQuery::~MysqlQuery()
{
	delete stmt;
	delete con;
	//delete res;
}


sql::ResultSet * MysqlQuery::Query(string sql) {
	
	return stmt->executeQuery(sql);
}

最後運行會有出錯的情況,說明缺少dll文件,添加如圖dll文件到System32目錄即可!

測試結果:

 編譯成功,代碼運行一切正常!!測試結果與預期結果一致!大功告成!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章