MySQL connector c++使用笔记
MySQL的connector官方地址: http://dev.mysql.com/downloads/connector/
针对c++来说, 可以选择c或者c++的库.
c++的实现是参考了java的JDBC, 所以熟悉JDBC的人可以很快上手.
定义这样几个类
ConnectionDriverPreparedStatementResultSetResultSetMetaDataStatement
下载安装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 ...
随机推荐
- Chisel常用命令总结
Chisel简介 Chisel是Facebook开源的一款lldb调试工具,其实就是对系统lldb命令的封装,开发者可以通过简化的命令更方便的进行调试工作.开源地址:https://github.co ...
- 注册和删除Apache服务器的方法
Apache服务器的安装和卸载方法 下载Apache安装包 将Apache文件夹存在桌面或其他盘,输入cmd打开命令提示行 安装步骤:进入Apache安装目录下的bin目录: cd C:\Us ...
- JDBC处理文本和二进制文件
JDBC支持文本(CLOB)和二进制(BLOB)文件的处理,比如要往数据库里存取文章或者图片.这都是用流的思想来解决的. 来两个Demo看看JDBC是怎么操作文本和二进制文件的. CLOB: pack ...
- nexus使用方法
转自:https://www.cnblogs.com/grey-wolf/p/6481166.html centos7搭建nexus maven私服 前置条件: 1.安装jdk,可参考 http: ...
- ThinkPHP分页用异步来做,玩转分页类!
具体为什么用异步来做分页我就不多说了! 用异步来做分页,主要还是看分页类怎么玩! 方便管理,还是把Ajax分页作为一个工具来使用: 同样新建工具类: 多次尝试,最终修改好的分页类是这样的:(我自己使用 ...
- nginx跟tp5无法加载控制器
二. 另外502 bad gateway错误,可能是有PHP中的php-fpm.conf里 “ listen fastcgi_pass /tmp/php-cgi.sock ”跟nginx的conf文 ...
- 委托(Func与Action)
1.平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Sa ...
- 【转】jQuery.ajax向后台传递数组问题
$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...
- xplan-打印执行顺序
-- ------------------------------------------------------------------------------------------------- ...
- Nginx高级玩法
1. Nginx获取自定义消息头 .nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持: underscores_in_h ...