c++ 操作mysql_C++操作mysql方法总结(1)

C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式

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

d3cace82b01e69b33de1c3b64880db95.png

项目中使用的数据库名为booktik

表为book

ee696711b1cf7c1d11b46e31479f432c.png

……….

(共有30条记录,只列出了部分记录,14-30未列出)

一、通过mysql的C api进行操作

1、新建一个空项目

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

3e2053af6a3eeb77d989bbae241def06.png

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

5afd753dd05840468e186c2c0e43224b.png

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

e6392d44aa70d03b72591ff5279067de.png

(*3.4步也可以在程序代码的开始处加上#pragma comment(lib,"D:\\Program Files\\MySQL\\MySQL Server 5.6\\lib\\libmysql.lib") 来导入libmysql.lib)

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

298951bbd4570d1e50ebcf31209e0296.png

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

至此,相关配置全部完成

程序代码

main.cpp

#include #include#include#include

using namespacestd;#pragma comment(lib,"D:\\Program Files\\MySQL\\MySQL Server 5.6\\lib\\libmysql.lib")

intmain()

{const char user[] = "root";const char pswd[] = "123456";const char host[] = "localhost";const char table[] = "booktik";

unsignedint port = 3306;

MYSQL myCont;

MYSQL_RES*result;

MYSQL_ROW sql_row;intres;

mysql_init(&myCont);if (mysql_real_connect(&myCont, host, user, pswd, table, port, NULL, 0))

{

mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式

res = mysql_query(&myCont, "select * from book");//查询

if (!res)

{

result= mysql_store_result(&myCont);if(result)

{while (sql_row = mysql_fetch_row(result))//获取具体的数据

{

cout<

cout<

}

}

}else{

cout<< "query sql failed!" <

}

}else{

cout<< "connect failed!" <

}if (result !=NULL)

mysql_free_result(result);

mysql_close(&myCont);

system("pause");return 0;

}

运行结果如下:

ab26c7bb4c31741c14e8e2bb613e943f.png

二、通过mysql的Connector C++ 1.1.3进行操作

MySQL C++ Driver的实现基于JDBC规范

MySQL Connector/C++是由Sun Microsystems开发的MySQL连接器。它提供了基于OO的编程接口与数据库驱动来操作MySQL服务器。

与许多其他现存的C++接口实现不同,Connector/C++遵循了JDBC规范。也就是说,Connector/C++ Driver的API主要是基于Java语言的JDBC接口。JDBC是java语言与各种数据库连接的标准工业接口。

Connector/C++实现了大部分JDBC规范。如果C++程序的开发者很熟悉JDBC编程,将很快的入门。

MySQL Connector/C++需要安装配置boost库,boost库安装编译在这里不进行阐述

1、新建一个空项目

2、将D:\Program Files\MySQL\Connector C++ 1.1.3\include添加到项目的包含目录中(根据具体路径而定)

332f59ab5fe9c3a74dbe0b132cceeeb3.png

3、将D:\boost\boost_1_55_0添加到项目的包含目录中(根据具体路径而定)

6da762b2c4aea0b0dc43d24bc9af2788.png

4、将D:\Program Files\MySQL\Connector C++ 1.1.3\lib\opt添加到项目的库目录中(根据具体路径而定)

23ca3de27d992c49ebf6b7c343b150ed.png

5、添加mysqlcppconn.lib至附加依赖项中

5095ff43bdbc428f959240ab76498f9d.png

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

b7f900596a163579f19b8acfb53cc12c.png

7、将D:\Program Files\MySQL\Connector C++ 1.1.3\lib\opt(根据具体路径而定)下的mysqlcppconn.dll复制到项目中去,和.cpp,.h文件位于同一路径下

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

至此,相关配置全部完成

程序代码

main.cpp

#include #include#include#include#include"mysql_driver.h"#include"mysql_connection.h"#include"cppconn/driver.h"#include"cppconn/statement.h"#include"cppconn/prepared_statement.h"#include"cppconn/metadata.h"#include"cppconn/exception.h"

using namespacestd;using namespacesql;intmain()

{

sql::mysql::MySQL_Driver*driver = 0;

sql::Connection*conn = 0;try{

driver=sql::mysql::get_mysql_driver_instance();

conn= driver->connect("tcp://localhost:3306/booktik", "root", "123456");

cout<< "连接成功" <

}catch(...)

{

cout<< "连接失败" <

}

sql::Statement* stat = conn->createStatement();

stat->execute("set names 'gbk'");

ResultSet*res;

res= stat->executeQuery("SELECT * FROM BOOK");while (res->next())

{

cout<< "BOOKNAME:" << res->getString("bookname") <

cout<< "SIZE:" << res->getString("size") <

}if (conn != 0)

{

delete conn;

}

system("pause");

}

运行结果

fa06bfcc14d4d8379ed02efb68d33f08.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 8函数索引_新特性解读 | MySQL 8.0 索引特性1-函数索引

原创作者&#xff1a;杨涛涛函数索引顾名思义就是加给字段加了函数的索引&#xff0c;这里的函数也可以是表达式。所以也叫表达式索引。MySQL 5.7 推出了虚拟列的功能&#xff0c;MySQL8.0的函数索引内部其实也是依据虚拟列来实现的。我们考虑以下几种场景&#xff1a;1.对比日…

python上下键不能用_python退格、方向键无法正常使用解决方法

标签&#xff1a;CentOS 6.5 自带的Python 2.6.6 箭头以及退格键(Backspace)可正常使用&#xff1a;自定义所安装的Python 2.7.6却发现箭头以及退格键(Backspace)在使用的时候出现异常&#xff1a;这是由于新升级的Python2.7.6缺少readline开发包的原因&#xff1a;后重新编译、…

python周志_Python几周学习内容小结

环境配置学习python首先是要配置环境&#xff0c;我们选择了Anaconda.什么是Anaconda:专注于数据分析的python发行版本。为什么选择Anaconda:省事省心&#xff0c;分析利器至于下载和安装只要百度一下&#xff0c;你就知道。Python基本语法Python标识符在 Python 里&#xff0c…

python文本分词_【Python】使用jieba对文本进行分词

【参考】#-*- coding:utf-8 -*-importjiebaimportsysreload(sys)sys.setdefaultencoding(utf8)char_x2"考勤机分两大类&#xff1a;第一类是简单打印类&#xff0c;打卡时&#xff0c;原始记录数据通过考勤机直接打印在卡片上&#xff0c;卡片上的记录时间即为原始的考勤信…

mysql进阶知识_Mysql面试知识点总结(进阶篇)

上一篇主要介绍一些基础的mysql知识点&#xff0c;这一篇我们介绍一下mysql比较重要但在开发中我们程序员很少知道的几个大点(自以为是的观点)。数据库设计三范式&#xff1a;第一范式&#xff1a;数据库表的每一列都是不可分割的原子数据项&#xff0c;即列不可拆分。第二范式…

python计算样本方差_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...

使用numpy可以做很多事情&#xff0c;在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算。variance: 方差方差(Variance)是概率论中最基础的概念之一&#xff0c;它是由统计学天才罗纳德费雪1918年最早所提出。用于衡量数据离散程度&#xff…

java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?

这是 JAVA 编译型语言特性决定的&#xff0c;修改 JAVA 程序重启应用也正常。只不过改报表就要重启整个应用就有点夸张了&#xff0c;报表变动比较频繁&#xff0c;每次都重启应用会影响业务的。这个问题的根本原因是耦合性问题&#xff0c;报表里一旦涉及到 JAVA 代码就要跟主…

python中newfile是干嘛用的_Python基础介绍 | File I\O 读写文件

如何用Python读写文件呢&#xff1f;我们有许多种办法&#xff0c;包括使用Pandas或者使用os相关的工具&#xff0c;我们来看一下&#xff1a;首先&#xff0c;得明白文件路径的事情&#xff1a;import oscurrent_file os.path.realpath(file_io.ipynb)print(current file: {}…

mysql share mode_mysql锁:mysql lock in share mode 和 select for update

select ... lock in share modeselect ... for update注意点&#xff1a;1.都在事务内起作用;2.所涉及的是行锁(即innodb引擎);3.保证当前session事务所锁定的行不会被其他session所修改(这里的修改指更新或者删除)&#xff1b;4.select ... lock in share mode是共享锁&#x…

python是谁维护的_Python是维护拆分的更可靠的方法

cde直接结果一位十进制类最近遇到了一个魔术问题。\\ gt; \\ gt; \\ gt;圆(0.215.2)0.21&#xff1a;00 u t26 t&#xff1a;我想要的结果是0.22&#xff0c;这应该是双重存储的原因。那么如何避免呢&#xff1f;搜索很长一段时间后&#xff0c;将其张贴在此处进行记录。导入小…

idea 用iterm 终端_iTerm2 都不会用,还敢自称老司机?(上)

对于需要长期与终端打交道的工程师来说&#xff0c;拥有一款称手的终端管理器是很有必要的&#xff0c;对于 Windows 用户来说&#xff0c;最好的选择是 Xshell&#xff0c;这个大家都没有异议。但对于 MacOS 用户来说&#xff0c;仍然毋庸置疑&#xff0c;iTerm2 就是你要的利…

bootstrap 日历中文_bootstrap日期选择器本地化-中文

最近用bootstrap做项目&#xff0c;所以就顺便搜了下用bootstrap写的日期选择器。搜到的第一和第二条结果虽然是官网&#xff0c;但上面挂的还是基于bootstrap2的日期选择器(此时为北京时间2017-12-26 17:18)&#xff0c;不能与bootstrap3兼容使用。所以又去找bootstrap3的日期…

td之间的间距怎么改_论文的一级标题、二级标题格式怎么弄?

其实论文写好了以后&#xff0c;论文格式的调整也是非常重要的&#xff0c;具体的格式一般有以下几点&#xff1a;标题格式&#xff0c;一级标题、二级标题、三级标题页码格式&#xff0c;一般是正文之前为罗马数字&#xff0c;正文以后为阿拉伯数字&#xff0c;一般是页脚中间…

winform教_电脑绝技教你22天学精Csharp之第十五天winform应用程序补充5

{{1}}$using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;namespace _10打开对话框{publi…

python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解

引言----在实际的web测试工作中&#xff0c;需要配合键盘按键来操作&#xff0c;webdriver的 keys()类提供键盘上所有按键的操作&#xff0c;还可以模拟组合键Ctrla&#xff0c;Ctrlv等。举例&#xff1a;#cordinggbkimport osimport timefrom selenium import webdriverfrom s…

python中webdriver_Python自动化学习--Webdriver中的常用方法

from selenium import webdriverdriver webdriver.Chrome()driver.get("https://www.baidu.com/")#WebDriver 中常用的一些方法"""(1) clear() 清楚文本 例&#xff1a;driver.find_element_by_id("kw").send_keys("测试学习")d…

mysql 1556_mysql导入时Error Code: 1556 - You can't use locks with log tables.

前几天数据库迁移&#xff0c;导入数据时发现报错&#xff0c;如下:Query:LOCK TABLES general_log WRITEError occured at:2011-07-08 10:22:12Line no.:10268Error Code: 1556 - You cant use locks with log tables.因为某些原因一直没有去解决这个问题&#xff0c;后来数据…

plupload怎么设置属性_腾达无线路由器怎么设置,这些是你要知道的

腾达无线路由器怎么设置1、联好线路&#xff1a;到你家的外网网线接路由器的WAN口&#xff0c;你的电脑连到路由器的LAN口(有四个&#xff0c;任意一个均可)&#xff0c;给路由器接通电源。设置的时候&#xff0c;给路由器通电&#xff0c;一根网线直接连电脑和路由器的这个口就…

mysql centos 安装目录在哪_centos中如何查看mysql安装目录在哪

centos中查看mysql安装目录的方法&#xff1a;推荐教程&#xff1a;centos使用教程1、使用ps -ef|grep mysql命令查看&#xff1a;结果&#xff1a;root 17659 1 0 2011 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir/var/lib/mysql --socket/var/lib/mysql/mysql.sock …

mysql group by 规则_mysql 的group by 满足的规则要求:

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/u011066470/article/details/97291377————————————————GROUP BY满足的规则:所有sele…