C++操作mysql方法总结(3)
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项目的包含目录中(根据具体路径而定)
4、将D:\Program Files\MySQL\MySQL Server 5.6\lib添加到mysqlpp项目的库目录中(根据具体路径而定)
5、确保libmysql.lib已经添加到mysqlpp项目的附加依赖项中
6、如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64
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)
3、将D:\mysqllib添加到项目的库目录中(根据具体路径而定)
4、添加mysqlpp.lib至附加依赖项中
(*3.4步也可以在程序代码的开始处加上#pragma comment(lib,"D:\\mysqllib\\mysqlpp.lib") 来导入mysqlpp.lib)
5、如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64
6、将D:\mysqllib(根据具体路径而定)下的mysqlpp.dll和D:\Program Files\MySQL\MySQL Server 5.6\lib(根据具体路径而定)
下的libmysql.dll复制到项目中去,和.cpp,.h文件位于同一路径下
至此,相关配置全部完成
程序代码
main.cpp
#include <mysql++.h>
#include <iostream>
#include <iomanip> using namespace std; int main(int argc, char *argv[])
{
mysqlpp::Connection conn(false);
mysqlpp::SetCharsetNameOption *opt =new mysqlpp::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 <<setw(9)<<"BookName:"<< row["bookname"] << endl;
cout << setw(9)<<"Size:" << row["size"] << endl;
}
}
else
{
cerr << "Failed to get item list: " << query.error() << endl;
return 1;
}
}
else
{
cerr << "DB connection failed: " << conn.error() << endl;
return 1;
}
system("pause");
}
运行结果
C++操作mysql方法总结(3)的更多相关文章
- C++操作mysql方法总结(2)
C++通过ODBC和通过MFC ODBC操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍 ...
- 转:C++操作mysql方法总结(1)
原文:http://www.cnblogs.com/joeblackzqq/p/4332945.html C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作m ...
- C++操作mysql方法总结(1)
C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名为boo ...
- [mysql] C++操作mysql方法总结(1)
From: http://www.cnblogs.com/magicsoar/p/3817518.html C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作 ...
- [mysql] C++操作mysql方法
下载:http://mirrors.sohu.com/mysql/MySQL-5.5/ From: http://www.cnblogs.com/magicsoar/p/3817518.html C+ ...
- python操作mysql方法和常见问题
http://www.cnblogs.com/ma6174/archive/2013/02/21/2920126.html 安装mysql模块 sudo easy_install mysql-pyth ...
- Shell脚本中执行sql语句操作mysql的5种方法【转】
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- nodejs mysql 操作数据库方法二
node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选, ...
- python操作mysql代码讲解(及其实用,未来测试工作主要操作数据库的方法)
pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 1 pip3 install pymysql 使用操作 1.执行SQL 1 2 3 4 ...
随机推荐
- ZooKeeper实现分布式队列Queue
ZooKeeper实现分布式队列Queue 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来 ...
- 20155211 课下测试ch11补做
20155211 课下测试ch11补做 Web服务器的实现基于HTTP协议,有关HTTP协议,下面说法正确的是() A.可以用telnet充当Web服务器的客户端进行调试 B.HTTP请求的GET和P ...
- jQuery学习-基本选择器
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- matplotlib绑定到PyQt5(有菜单)
稍微复杂地实现matplotlib绑定到PyQt5(有菜单) [知识点] import matplotlib matplotlib.use("Qt5Agg") [效果图] [源代码 ...
- CF 348 D. Turtles
D. Turtles 链接 题意: 给定一个N*M的棋盘,有些格子不能走,问有多少种从(1,1)到(N,M)的两条不相交路径. 分析: lGV定理. 定理:点集A={a1,a2,…an}A={a1,a ...
- Webpack之Code Splitting 代码分块
如何实现代码分块 默认情况webpack会将资源文件打包成一个js文件,比如app.bundle.js 实际情况我们需要按需加载 方法如下: require.ensure(dependencies, ...
- centos6.5部署gitlab
安装过程参考: https://www.cnblogs.com/wenwei-blog/p/5861450.html https://ehlxr.me/2016/07/31/CentOS-%E7%B3 ...
- Python 10min系列之面试题解析丨Python实现tail -f功能
关于这道题,简单说一下我的想法吧.当然,也有很好用的 pyinotify 模块专门监听文件变化,不过我更想介绍的,是解决的思路. 毕竟作为面试官,还是想看到一下解决问题的思路,而且我觉得这一题的难点不 ...
- UWP 五星评价(不跳转到龟速商店)
之前写过一篇文章 UWP 五星好评 代码如下 var pfn = Package.Current.Id.FamilyName; await Launcher.LaunchUriAsync(new ...
- linux用命令行编译使用函数库
同步于气象家园日志 from fcode 视频 编译静态链接库 gfortran -c sub.f90 func.f90 产生了func.mod文件.注:mod文件是静态库的接口.如果删掉了fu ...