文章目录
引言1. 建立一个MFC对话框项目2. 控件布局2.1 添加控件2.2 引入List Control控件类2.3 定义控件变量2.4 添加按钮点击响应函数2.4 初始化List Control控件:3. ODBC插件环境配置及安装3.1 下载ODBC插件3.2 配置ODBC环境3.3 配置环境变量3.4 安装ODBC3.5 验证是否安装成功4. 建立ODBC数据源5.VS中通过ODBC连接MySQL数据库引言
在MySQL的官网中,查看文档资料,找到Connectors & APIs,可以看到关于如何连接到MySQL的使用说明文档。
Connector / C ++
使C ++应用程序可以连接到MySQL。Connector / J
为使用标准Java数据库连接(JDBC)API从Java应用程序连接到MySQL提供驱动程序支持。Connector/NET
使开发人员可以创建连接到MySQL的.NET应用程序。连接器/ NET实现了功能齐全的接口,并提供了与感知工具一起使用的支持。可以使用任何受支持的.NET语言编写使用Connector / NET的应用程序。MySQL for Visual Studio
可与Connector / NET和Microsoft Visual Studio 、、和配合使用。适用于Visual Studio的MySQL提供对来自Visual Studio的MySQL对象和数据的访问。作为Visual Studio软件包,它直接集成到Server Explorer中,从而能够创建新连接并使用MySQL数据库对象。Connector/ODBC
为使用开放数据库连接(ODBC)API连接到MySQL提供了驱动程序支持。支持从Windows,Unix和macOS平台进行ODBC连接。Connector / Python
提供驱动程序支持,以使用兼容Python DB API版本2.0的API从Python应用程序连接到MySQL 。不需要其他Python模块或MySQL客户端库。Connector/Node.js
提供了一个异步API,用于使用X协议从Node.js应用程序连接到MySQL。Connector / Node.js支持管理数据库会话和架构,使用MySQL Document Store集合以及使用原始SQL语句。
用于MySQL的库和接口:
Mysql++是官方发布的、一个为MySQL设计的C++语言的API。Mysql++对Mysql的C Api的再次封装,MYSQL++是对于MYSQL C API的C++完全包装。它用STL(Standard Template Language)开发并编写,并为C++开发者提供像操作STL容器一样方便的操作数据库的一套机制。
其官方API介绍:MySQL++
本文介绍采用ODBC的方式连接MySQL数据库。
1. 建立一个MFC对话框项目
新建MFC应用程序,项目名称:MySQLUseTest
选择基于对话框
:
项目创建完成。
点击项目,改成 ‘使用多字节字符集
’:
2. 控件布局
2.1 添加控件
添加如下几个控件:
其中:IDC_RADIO1的组属性设置为TRUE
布局如下:
2.2 引入List Control控件类
将List控件类文件夹CListControl
添加到当前项目中:
项目中新建筛选器CListControl
,右键添加现有项,选择CListControl文件中的四个文件:
在文件MySQLUseTestDlg.h
中添加头文件:#include"CListControl/ListCtrlCl.h"
:
2.3 定义控件变量
类向导增加控件/值变量:2.4 添加按钮点击响应函数
双击录入按钮,自动添加响应点击函数OnBnClickedButton1
:2.4 初始化List Control控件:
在OnInitDialog()函数中添加://设置List Control 控件的样式DWORD dwStyle = m_listCtrl.GetExtendedStyle(); //listcontrol部分 dwStyle |= LVS_NOCOLUMNHEADER;dwStyle |= LVS_EX_GRIDLINES;m_listCtrl.SetExtendedStyle(dwStyle);CRect rect;//获取list列表的宽和高m_listCtrl.GetWindowRect(&rect);int weightOfList = rect.Width();m_listCtrl.SetBkColor(RGB(255, 255, 255)); //设置背景色m_listCtrl.SetRowHeigt(40);//设置行高度m_listCtrl.SetHeaderHeight(float(1.2));//设置头部高度m_listCtrl.SetHeaderFontHW(20, 0); //设置头部字体高度,和宽度,0表示缺省,自适应 m_listCtrl.SetHeaderTextColor(RGB(255, 255, 255)); //设置头部字体颜色m_listCtrl.SetTextColor(RGB(0, 0, 0)); //设置文本颜色m_listCtrl.SetHeaderBKColor(0, 100, 0, 0); //设置头部背景色m_listCtrl.SetFontHW(20, 0);//设置字体高度,和宽度,0表示缺省宽度//设置表头:m_listCtrl.InsertColumn(0, "编号", LVCFMT_CENTER, weightOfList/4);m_listCtrl.InsertColumn(1, "姓名", LVCFMT_CENTER, weightOfList / 4);m_listCtrl.InsertColumn(2, "性别", LVCFMT_CENTER, weightOfList / 4);m_listCtrl.InsertColumn(3, "联系方式", LVCFMT_CENTER, weightOfList / 4);
运行界面如下:
3. ODBC插件环境配置及安装
使用ODBC连接的时候先有以下准备:
1、电脑已经安装了mysql数据库
2、电脑已经安装了Microsoft Visual Studio
3.1 下载ODBC插件
官方下载MySQL连接ODBC的插件,下载地址:Connector/C++ 8.0.25:下载与自己安装的MySQL相同版本和位数的相应的ODBC的zip包。
VS是32、64位的,驱动就对于安装多少位的。
3.2 配置ODBC环境
解压文件:
将文件myodbc8S.dll
、myodbc8S.lib
、myodbc8w.dll
、myodbc8w.lib
、myodbc8a.dll
、myodbc8a.lib
复制到官方推荐的地址C:\Windows\System32
:
Unicode-enabled driver:myodbc8w.dll myodbc8w.lib
ANSI driver:myodbc8a.dll myodbc8a.lib
3.3 配置环境变量
在系统环境的path中添加mysql-connector-odbc-noinstall-8.0.25-winx64下的bin目录:
3.4 安装ODBC
以管理员打开命令提示符,进入文件夹mysql-connector-odbc-noinstall-8.0.25-winx64
:输入“Install.bat”,点击回车运行:
如果显示Success: Usage count is 1,表示安装成功。
ODBC驱动版本的 ANSI 和 UNICODE两个版本的区别:
Unicode driver 版本提供了
更多字符集
的支持,也就是提供了多语言的支持
。而ANSI driver 版本是只针对有限的字符集
的范围。用Install.bat直接安装两个驱动,若只想安装一个驱动的话,可以用下面的命令:
Unicode-enabled driver:
myodbc-installer -d -a -n "MySQL ODBC 8.0 Unicode Driver" -t "DRIVER=myodbc8w.dll;SETUP=myodbc8S.dll"
ANSI driver:
myodbc-installer -d -a -n "MySQL ODBC 8.0 Driver" -t " DRIVER=myodbc8a.dll;SETUP=myodbc8S.dll"
3.5 验证是否安装成功
进入控制面板,搜索管理工具
:点击ODBC数据源(64位),也可根据自己的情况安装32bit的ODBC Data Sources(32-bit):
选择系统DSN,点击添加按钮,若出现MySQL ODBC,表示安装成功:
4. 建立ODBC数据源
打开控制面板 - 管理工具 - ODBC数据源(64位),点击“系统DNS” ,选择右边的添加,选择Unicode驱动:
填写数据源的内容建立ODBC数据源
Date soure Name:数据源的名称,建议英文!
Description:描述!随便填,建议英文!
server:localhost(如果是本地服务器就填写localhost或127.0.0.1,否则填ip地址)
user:mysql的用户名
password:mysql的密码
DataBase:点下拉菜单,选择当前mysql数据库中存在的数据库
2. 生成一个数据源:
5.VS中通过ODBC连接MySQL数据库
void CMySQLUseTestDlg::OnBnClickedButton1(){CDatabase db;CString conn;conn.Format("ODBC;DSN=MySQLDataSource;UID=%s;PWD=%s", "root", "admn");//DSN对应前面弹窗中的Database Source Name,UID对应登录数据库的用户名,PWD对应登录数据库的密码db.Open(NULL, FALSE, FALSE, conn);if (db.IsOpen())//如果连接成功MessageBox("Connection is successful", "提示",MB_ICONINFORMATION | MB_YESNO);elseMessageBox("Connection is failed", "提示",MB_ICONINFORMATION | MB_YESNO);}