之前有发过一篇文章,是用vs2019+MySQL Connector/C++ 8,连接mysql5.7。
vs 2019 c++ MySQL Connector/C++ 8 连接MySQL 5.7
此篇介绍vs 2019、msvc 14、cmake、MySQL Connector/C++ 8、OCCI连接MySQL,Oracle,话不多讲,直接正题。
1、下载oracle的occi库下,
Oracle Instant Client Downloads for Microsoft Windows (x64) 64-bit
链接地址如下:
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
由于系统windows 64,msvc14 ,我选择是上版本,下载,解压。
2、下载mysql的 MySQL Connector/C++ 8,连接地址
MySQL Community Downloads
链接地址如下:
https://dev.mysql.com/downloads/connector/cpp/
由于系统windows 64,msvc14 ,我选择是上版本,下载,解压。
3、在CMakeLists.txt中引用OCCI,这里我直接粘进来cmake加载的一部分,由于我没有采用包管理,这里直接指向了oraocci19.lib,感觉搞法有点低级。
# CMakeList.txt: 顶层 CMake 项目文件,在此处执行全局配置
# 并包含子项目。
#
cmake_minimum_required (VERSION 3.8)
project ("dllOracle")
include_directories (include)
aux_source_directory (src SRC_DLLORACLE)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
add_library(dllOracle STATIC ${SRC_DLLORACLE})
# dllOracle库项目中加入Oracle三方库的引用
set(ORACLE_HOME "E:C++OCCIinstantclient_19_8sdk")
include_directories(${ORACLE_HOME}include)
target_link_libraries (dllOracle ${ORACLE_HOME}libmsvcvc14oraocci19.lib)
4、在CMakeLists.txt中引用MySQL Connector/C++ 8,同理三方库也直接批到了具体的文件名。同样是低级的搞法。哪位大侠有专业的写法,还请指教。
# CMakeList.txt: 顶层 CMake 项目文件,在此处执行全局配置
# 并包含子项目。
#
cmake_minimum_required (VERSION 3.8)
project ("dllMySQL")
include_directories (include)
aux_source_directory (src SRC_DLLMYSQL)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
add_library(dllMySQL STATIC ${SRC_DLLMYSQL})
# dllMySQL项目中加入mysql三方库的引用
set(MYSQL_HOME "E:C++mysql-connector-c++mysql-connector-c++-8.0.30-winx64")
include_directories(${MYSQL_HOME}include)
target_link_libraries (dllMySQL ${MYSQL_HOME}lib64vs14mysqlcppconn.lib)
5、连接Oracle,这里只上一个头文件,具体CPP就不粘了。
#pragma once
#include
#include
using namespace oracle::occi;
class MyOracleDB
{
public:
MyOracleDB();
~MyOracleDB();
int initDB();
int exeSQL(std::string sql);
int exeSQL2(std::string sql);
private:
Environment* env;
Connection* conn;
Statement* pStmt;
};
6、连接MySQL
#pragma once
#include
#include
class MySqlDB
{
public:
MySqlDB();
~MySqlDB();
int initDB();
int exeSQL(std::string sql);
private:
sql::Driver* driver;
sql::Connection* conn;
sql::Statement* stmt;
sql::ResultSet* res;
};
7、测试Oracle,MySQL这里就直接上两个图片。
8、上面cmake的安装,工程创建生成,编译,OracleOCCI解压,环境变量,MySQL Connector/C++ 8的准备,都没有讲,网上一片一片。希望不会误人子第,少走弯路。也希望大侠们指教。
页面更新:2024-04-29
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号