Heim  >  Artikel  >  Datenbank  >  C++操作mysql方法总结(3)

C++操作mysql方法总结(3)

WBOY
WBOYOriginal
2016-05-31 08:47:121099Durchsuche

C++通过mysql++操作mysql的方式

使用vs2013和64位的msql 5.6.16进行操作

项目中使用的数据库名和表数据请参考 C++操作mysql方法总结(1) 中的介绍

Mysql++是官方发布的、一个为MySQL设计的C++语言的API。Mysql++为Mysql的C-Api的再次封装,它用STL(Standard Template Language)开发并编写,并为C++开发者提供像操作STL容器一样方便的操作数据库的一套机制。

下载地址 http://tangentsoft.net/mysql++/

一、Mysql++的编译(VS2013)

1、打开mysql  -3.2.1下的vc2008中mysql++.sln,会提示需要进行升级,点击确定即可

2、在打开的众多项目中,大多数都是示例,我们只需编译mysqlpp,获取生成所需的mysqlpp_d.dll和mysqlpp_d.lib(debug下)

或mysqlpp.dll和mysqlpp.lib(release下)

3、将D:/Program Files/MySQL/MySQL Server 5.6/include添加到mysqlpp项目的包含目录中(根据具体路径而定)

image

4、将D:/Program Files/MySQL/MySQL Server 5.6/lib添加到mysqlpp项目的库目录中(根据具体路径而定)

image

5、确保libmysql.lib已经添加到mysqlpp项目的附加依赖项中

image

6、如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64

image

7、将D:/Program Files/MySQL/MySQL Server 5.6/lib(根据具体路径而定)下的libmysql.dll复制到项目中去,和.cpp,.h文件位于同一路径下

8、 编译mysqlpp,生成所需的mysqlpp_d.dll和mysqlpp_d.lib(debug下) 或mysqlpp.dll和mysqlpp.lib(release下)

9、利用mysql++-3.2.1中的install.hta将所有include的文件一个地方,便于管理

在这里为了D:/mysqllib/mysqlplus/include

同时将 mysqlpp_d.dll和mysqlpp_d.lib, mysqlpp.dll和mysqlpp.lib放到了D:/mysqllib下

二、通过Mysql++进行操作mysql

1、新建一个空项目

2、将D:/mysqllib/mysqlplus/include和D:/Program Files/MySQL/MySQL Server 5.6/include添加到项目的包含目录中(根据具体路径而定)

(#mysql++中的mysql++.h include了MySQL Server 5.6中的mysql_version.h)

image

3、将D:/mysqllib添加到项目的库目录中(根据具体路径而定)

image

4、添加mysqlpp.lib至附加依赖项中

image

* 3.4步也可以在程序代码的开始处加上#pragma comment(lib,"D://mysqllib//mysqlpp.lib") 来导入mysqlpp.lib

5、如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64

C++操作mysql方法总结(3)

6、将D:/mysqllib(根据具体路径而定)下的mysqlpp.dll和 D:/Program Files/MySQL/MySQL Server 5.6/lib(根据具体路径而定)

下的libmysql.dll复制到项目中去,和.cpp,.h文件位于同一路径下

至此,相关配置全部完成

程序代码

main.cpp

#include <mysql>#include <iostream>#include <iomanip>using namespace std;int main(int argc, char *argv[]){	mysqlpp::Connection conn(false);	mysqlpp::SetCharsetNameOption *opt =newmysqlpp::SetCharsetNameOption("gbk");	conn.set_option(opt);	if (conn.connect("booktik",					"localhost",					"root",					"123456"))	{		conn.query("set names 'gbk' ");		mysqlpp::Query query = conn.query("select * from book");		mysqlpp::UseQueryResult res = query.use();		if (res)		{			while (mysqlpp::Row row = res.fetch_row())			{				 cout <p> <strong> <font>运行结果</font> </strong> </p>
<p> <img title="image" alt="image" src="http://img.bitscn.com/upimg/allimg/c140719/1405K50022A60-31a52.jpg"> </p>
    </iomanip></iostream></mysql>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn