MySQL的connector官方地址: http://dev.mysql.com/downloads/connector/

针对c++来说, 可以选择c或者c++的库.

c++的实现是参考了java的JDBC, 所以熟悉JDBC的人可以很快上手.

定义这样几个类

  • Connection

  • Driver

  • PreparedStatement

  • ResultSet

  • ResultSetMetaData

  • Statement

下载安装mysql connector c++, 启动mysql, 使用test database.

准备数据(使用官方提供的示例数据, 参考 MySQL手册 3.3.3 http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html)

CREATE TABLE pet (
name VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE
);

导入数据(路径可以为相对路径或绝对路径)

LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;

pet.txt(修改中间的间隔为\t)

Fluffy	Harold	cat	f	1993-02-04	\N
Claws Gwen cat m 1994-03-17 \N
Buffy Harold dog f 1989-05-13 \N
Fang Benny dog m 1990-08-27 \N
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11 \N
Whistler Gwen bird \N 1997-12-09 \N
Slim Benny snake m 1996-04-29 \N

示例代码

#include <iostream>
#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" int main() {
const char* user = "root";
const char* passwd = "";
const char* host = "tcp://localhost:3306";
const char* database = "test";
try {
sql::mysql::MySQL_Driver* driver =
sql::mysql::get_mysql_driver_instance();
sql::Connection* conn = driver->connect(host, user, passwd);
conn->setSchema(database);
std::cout << "status: " << conn->isClosed() << std::endl;
sql::Statement *stmt = conn->createStatement();
sql::ResultSet *res = stmt->executeQuery("select 1;");
while (res->next()) {
std::cout << res->getInt(1) << std::endl;
} res = stmt->executeQuery("select * from pet;");
while (res->next()) {
std::cout << res->getString(1) << ",";
std::cout << res->getString(2) << ",";
std::cout << res->getString(3) << ",";
std::cout << res->getInt(4) << ",";
std::cout << res->getString(5) << ",";
std::cout << res->getString(6) << std::endl;
} delete res;
delete stmt;
delete conn;
} catch (sql::SQLException& e) {
std::cout << "# ERR: SQLException in " << __FILE__;
std::cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << std::endl;
std::cout << "# ERR: " << e.what();
std::cout << " (MySQL error code: " << e.getErrorCode();
std::cout << ", SQLState: " << e.getSQLState() << " )" << std::endl;
}
return 0;
}

运行结果

status: 0
1
Fluffy,Harold,cat,0,1993-02-04,
Claws,Gwen,cat,0,1994-03-17,
Buffy,Harold,dog,0,1989-05-13,
Fang,Benny,dog,0,1990-08-27,
Bowser,Diane,dog,0,1979-08-31,1995-07-29
Chirpy,Gwen,bird,0,1998-09-11,
Whistler,Gwen,bird,0,1997-12-09,
Slim,Benny,snake,0,1996-04-29,

参考文档:

  1. 官方手册: http://dev.mysql.com/doc/refman/5.6/en/connector-cpp.html
  2. MySQL Connector/C++文档翻译: http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html

MySQL connector c++使用笔记的更多相关文章

  1. 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL

    创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...

  2. vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错

    包含头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/state ...

  3. Using MySQL Connector .NET 6.6.4 with Entity Framework 5

    I had been waiting for the latest MySQL connector for .NET to come out so I can move on to the new a ...

  4. [转]MySQL Connector/C++(一)

    http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html#undefined#undefined MySQL Connector/C++ ...

  5. mysql.connector操作mysql的blob值

    This tutorial shows you how to work with MySQL BLOB data in Python, with examples of updating and re ...

  6. Ubuntu & MacOS安装Mysql & connector

    Ubuntu & MacOS安装Mysql & connector 1. 安装MySql sudo apt-get install mysql-server apt-get insta ...

  7. Snippet: Fetching results after calling stored procedures using MySQL Connector/Python

    https://geert.vanderkelen.org/2014/results-after-procedure-call/ Problem Using MySQL Connector/Pytho ...

  8. Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记

    Ubuntu 14 编译安装 PHP 5.4.45 + Nginx  1.8.0/1.4.7 + MySQL 5.6.26 笔记,主要是给自己的PC机安装,非生产环境! 一.下载必要的源码 1.1.下 ...

  9. MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常

    今天学习SSM框架整合,完成Spring和mybatis这两大框架的整合做测试时候出来很多问题,主要来自于配置文件. 我这里重点说一下Mysql数据驱动配置. 配置pom.xml时候去网站 MySQL ...

随机推荐

  1. weblogic11g重置控制密码

    Reset the AdminServer Password in WebLogic 11g and 12c If you forget the AdminServer password for yo ...

  2. json 数据分析

    /* 健一健康头条 */ try { String url = "http://www.j1health.com/j1api.php/index/getJ1healthHotLists&qu ...

  3. git的常见问题

    今天把电脑清理了下再push就出问题了 ,报这个错Failed with error: fatal: unable to access 'https://git.oschina.net/dubo_/G ...

  4. docker swarm+register-web+shipyard搭建

    1.swarm安装 swarm安装有很多种服务注册的方式,token.etcd.zookeeper,本文主要以swarm默认的token方式进行安装.因为最新的docker已经集成了swarm,所以从 ...

  5. MP3 ID3信息编辑器(附源码)

    练习WPF时写的编辑MP3 ID3信息的小工具,方便对歌曲的统一管理,同时增加了调用豆瓣音乐API获取专辑信息的功能:1.主界面: 2.没有ID3 信息的MP3歌曲: 3.点击自动获取,从豆瓣音乐获取 ...

  6. Oracle下回滚rollback的使用

    oracle中可以设置一个回滚点进行回滚 设置回滚名称 savepoint pointa ; 进行回滚 rollback to pointa; 如果期间有删除的数据就回来了

  7. c# 调用声音文件

    一.使用C#自带的SoundPlayer using System.Media; SoundPlayer sound = new SoundPlayer("声音.wav"); so ...

  8. Oracle体系结构之Oracle分区

    目录 Oracle分区 0 一.Oracle分区理论知识 1 二.分区表的实现方式 1 1.范围分区(range partition table) 1 2.列表分区(list partitioning ...

  9. windows 文件查找 大小:>250M

    win7怎么快速查找大文件_百度经验 https://jingyan.baidu.com/article/acf728fd299ffff8e510a333.html

  10. Andrew Ng机器学习公开课笔记 -- 朴素贝叶斯算法

    网易公开课,第5,6课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 前面讨论了高斯判别分析,是一种生成学习算法,其中x是连续值 这里要 ...