MySQL connector c++使用笔记
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,
参考文档:
- 官方手册: http://dev.mysql.com/doc/refman/5.6/en/connector-cpp.html
- MySQL Connector/C++文档翻译: http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html
MySQL connector c++使用笔记的更多相关文章
- 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL
创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...
- vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错
包含头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/state ...
- 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 ...
- [转]MySQL Connector/C++(一)
http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html#undefined#undefined MySQL Connector/C++ ...
- mysql.connector操作mysql的blob值
This tutorial shows you how to work with MySQL BLOB data in Python, with examples of updating and re ...
- Ubuntu & MacOS安装Mysql & connector
Ubuntu & MacOS安装Mysql & connector 1. 安装MySql sudo apt-get install mysql-server apt-get insta ...
- 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 ...
- 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.下 ...
- MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常
今天学习SSM框架整合,完成Spring和mybatis这两大框架的整合做测试时候出来很多问题,主要来自于配置文件. 我这里重点说一下Mysql数据驱动配置. 配置pom.xml时候去网站 MySQL ...
随机推荐
- VS2015编译TIFF3.8.0源码
没有CMakeLists.txt,不能使用CMake GUI了.源文件中有makefile.vc,所以使用nmake 进入VS2015命令行 nmake -f makefile.vc 修改nmake. ...
- 英语——'s和s'和s的区别
举个例子吧,student's 是表示学生的,名词单数形式的所有格students' 是表示学生们的,名词复数形式的所有格students 是表示学生们,名词的复数形式
- tomcat的添加及jar包和jQuery的加载
- Egret打包App 短暂黑屏解决方案 (Egret4.1.0)
论坛已经有人解决:http://bbs.egret.com/forum.php?mod=viewthread&tid=30288&highlight=app%2B%E9%BB%91%E ...
- C# 生成PDF并下载。
例子是生成一个pdf格式的证书: 需要引用itextsharp.dll //创建Document Document document = null; //为该Document创建一个Writer实例 ...
- 【BZOJ2661】[BeiJing wc2012]连连看 最大费用流
[BZOJ2661][BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给 ...
- mysql 5.7如何添加用户
MySQL5.7 添加用户.删除用户与授权 转自:https://www.cnblogs.com/xujishou/p/6306765.html mysql -uroot -proot MySQL5 ...
- angularJS表达式详解!
angularJS的表达式很像Javascript里的表达式:它可以包含文字,运算符和变量: angularJS 表达式: - 数字:{{100+100}} - 字符串:{{‘hello’+'angu ...
- C语言实现日历输出
这个还是挺实用的.... 头文件: #ifndef MAIN_H #define MAIN_H #include "stdio.h" #include "math.h&q ...
- 【巷子】---vue项目打包---基本使用---【vue】
一.基本设置 二.打包 npm run build 三.github创建一个仓库 1.将文件上传至仓库 2.点击仓库设置 3.选择代码上传到master 4.点击地址即可预览 5.常用技巧 a.如果在 ...