MySQL数据库编程(C++语言)

发布时间:2018-05-24 21:06,

浏览次数:452

, 标签:

MySQL

本文主要介绍使用C++语言连接和操作 MySQL 数据库的方法。

1. 准备

本文利用 MySQL++ 接口进行C++语言的数据库编程。

MySQL++ 的官网定义如下:

MySQL++ is a C++ wrapper for MySQL’s C API. It is built around the same

principles as the Standard C++ Library, to make dealing with the database as

easy as dealing with STL containers. In addition, MySQL++ provides facilities

that let you avoid the most repetitive sorts of SQL within your own code,

providing native C++ interfaces for these common tasks.

为了使用 MySQL++ 接口编写C++程序,首先需要安装 MySQL++ ,本文使用 yum 命令安装 MySQL++ ,如下:

yum install mysql++-devel.x86_64 mysql++.x86_64 -y

同时,MySQL++ 需要用到 MySQL devel 的文件,所以也需要安装 mysql-devel,如下:

yum install mysql-community-devel.x86_64 -y

说明:关于 MySQL(mysql-community-*) 相关文件的安装,请点击此处

2. 编写C++程序

我们本次编写一个简单的连接、操作数据库的C++程序,代码(mysql_test.cpp)如下:

#include #include "mysql++.h" using namespace std; int main() {

const char* db = "testdb"; const char* server = "192.168.213.130"; const char*

user = "root"; const char* password = ""; // 创建数据库连接 mysqlpp::Connection

conn(false); // 连接数据库 if (conn.connect(db, server, user, password)) { cout <<

"connect db succeed." << endl; // 查询操作,查询结果保存在 query 中 mysqlpp::Query query =

conn.query("SELECT * FROM roles"); // 处理并打印查询结果 if (mysqlpp::StoreQueryResult

res = query.store()) { // 输出数据左对齐 cout.setf(ios::left); // 字段宽度为20位 // 打印表的字段名

cout << setw(21) << "role_id" << setw(21) << "occupation" << setw(21) << "camp"

<< endl; // 打印查询结果 mysqlpp::StoreQueryResult::const_iterator it; for (it =

res.begin(); it != res.end(); ++it) { mysqlpp::Row row = *it; cout << setw(20)

<< row[0] << ' ' << setw(20) << row[1] << ' ' << setw(20) << row[2] << ' ' <<

endl; } } } else { cout << "connect db fail." << endl; } return 0; }

编译生成可执行程序,如下:

g++ -o mysql_test mysql_test.cpp -I/usr/include/mysql++/ -I/usr/include/mysql/

-lmysqlpp

3. 测试

本次编写的代码连接的数据库位于 192.168.213.130 服务器上,相关的数据库信息参考源代码内容。

运行上面编译生成的程序,如下:

上述结果表明,我们编写的程序 mysql_test 成功地执行了连接、查询数据库操作。

mysql 数据库编程_MySQL数据库编程(C++语言)相关推荐

  1. Mysql常用词汇_mysql 数据库常用单词

    说明:以下单词可能有多种含义,此文档只针对编程做解释.单词不多,熟能生巧,每日认真读读写写,效果不错.如有错误,请谅解并指出,谢谢大家! 黄金超 2017-4-7 连接MySQL数据库: mysql ...

  2. mysql数据库应用_MySQL数据库应用 从入门到精通 学习笔记

    以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库 查看所有数据库:SHOW DATABASES 创建数据库:CREATE DA ...

  3. mysql合集_Mysql数据库知识点合集

    一.Mysql数据库的操作命令 1.登录:mysql -h 服务器地址 -u 登录名 -p 密码 mysql -h 127.0.0.1 -u root -p root 2.数据库备份:mysqldum ...

  4. mysql数据库语法_MySQL数据库语法(一)

    MySQL数据库语法 数据库管理系统(DBMS)的概述 什么是DBMS:数据的仓库 方便查询 可存储的数据量大 保证数据的完整.一致 安全可靠 DBMS的发展:今天主流数据库为关系型数据库管理系统(R ...

  5. 数据库mysql常用操作_mysql数据库常用操作

    目前最流行的数据库: oracle.mysql.sqlserver.db2.sqline --:单行注释 #:也是单行注释 /* 注释内容*/:多行注释 mysql -uroot -p密码:登录mys ...

  6. mysql case默认_MySQL数据库架构和同步复制流程

    在分布式系统里面,往往制约整个系统发展的瓶颈点就是数据库,所以数据库的架构和高可用以及数据库的切分都是我们值得花大力气去学习的. 首先我们来说说数据库的架构. 1.mysql主从架构,如图: 这种架构 ...

  7. mysql数据库管理程序_mysql数据库之日常管理

    分类:DDL―数据定义语言(CREATE,ALTER,DROP,DECLARE)DML―数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL―数据控制语言(GRANT,REVO ...

  8. mysql数据库监控程序_mysql数据库监控利器lepus天兔工具安装和部署

    需要的核心包如下: 以下软件包只需要部署在监控机即可.被监控机无需部署. 1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据) 2.Apache 2.2及以上 (必须,WEB服务器运行服务 ...

  9. mysql 乱码 越南_mysql数据库乱码之保存越南文乱码解决方法

    我自己测试一下,很多字符变成了 '?'. 数据库连接已经是使用了 utf8 字符集: 复制代码 代码如下:define("MYSQL_ENCODE", "UTF8&quo ...

  10. 数据库 mysql详解_MySQL数据库详解

    一.数据库概述 1.数据库与文件系统文件系统对比. 数据冗余和不一致性 数据访问 数据格式相对独立 数据完整性和原子性 数据的并发访问 数据的安全性问题 2.数据库概念 1.DBMS:数据库管理系统 ...

最新文章

  1. Linux(Ubuntu)下如何解压 .zip 文件
  2. OpenCV使用inRange的阈值操作Thresholding Operations
  3. WebApp匯入資料之From Excel
  4. Python数据库编程pymysql
  5. 信贷全流程监控报表有哪些?
  6. PCL——快速邻域搜索
  7. WebDAV被启用(转)
  8. 【C++】简易GIF生成器(斗图神器!必备!!!)持续更新~
  9. 【第七篇】Vue实战综合案例
  10. SQL SERVER 修改表字段长度
  11. mysql必须记住的单词_如何真正记住英语单词?
  12. BM3D、域变换与Non-Local
  13. JQ6500语音模块
  14. Unity3D中背景音乐和相关音效的添加,背景音乐暂停、停止和播放的设置
  15. 【Jectpack】DataStore
  16. 人工智能第二章知识表示
  17. 知乎,挣钱?果然具有长尾效应
  18. 作为一个iOS开发者,应该继续钻研SwiftUI还是尝试接触Flutter了呢?
  19. 用Html+js自己写了一个小游戏
  20. 明天见丨云和恩墨生态产品发布会双平台直播,三款新品即将揭晓

热门文章

  1. python为什么没有点击就触发_Ai中没有触发的触发器
  2. python中赋值不正确的_python中关于赋值、浅拷贝与深拷贝的问题
  3. numpy 创建加一行_NumPy数据处理的可视化
  4. Video Question Answering综述
  5. 下列不属于计算机完成科学技术特点的是,青岛科技大学计算机组成原理计算机组成原理试卷1(计算机)2011A...
  6. android findviewbyid定义成静态,findViewById 为null???
  7. crtsiii型无砟轨道板_为什么高铁轨道不像普快列车轨道那样铺碎石?
  8. 深拷贝的缺点_JavaScript 深拷贝
  9. SQLSERVER 和 ORACLE 查询数据库文件大小
  10. 福州大学软件工程1816 | W班 第7次作业成绩排名