[关闭]
@Andream 2017-08-13T18:15:45.000000Z 字数 1761 阅读 1619

MySQL C++ Connector连接MySQL

MySQL


例:

  1. #include "MySQLServer.h"
  2. // 连接数据库
  3. MySQLServer mysql("tcp://127.0.0.1:3306", "root", "password");
  4. // 初始化数据库
  5. mysql.execute("create database if not exists library");
  6. mysql.execute("use library");
  7. mysql.execute("create table if not exists user(username TEXT, password TEXT)");
  8. // 查询
  9. sql::ResultSet *res = mysql.executeQuery("select * from user where username=Andream");
  10. cout << res->getString("username") << res->getString("password");
  11. delete res;
  12. // 插入
  13. mysql.execute("INSERT INTO user(username,password) VALUES (Andream, 123)");
  14. // prepare查询
  15. sql::ResultSet *res = mysql
  16. .prepare("select * from user where username=?")
  17. .setString("Andream") // 填入第一个问号
  18. .executeQuery(); // 查询
  19. recycle(); // 回收指针,与prepare搭配使用
  20. // prepare插入
  21. mysql.prepare("INSERT INTO user(username,password) VALUES (?, ?)")
  22. .setString("Andream")
  23. .setString("123")
  24. .execute();
  25. recycle(); // 回收指针,与prepare搭配使用

本例基于MySQL C++ Connector, 请确认你已经安装了该组件(目录默认在C:\Program Files\MySQL\Connector.C++ 1.1)。
官方文档:https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-examples-connecting.html

操作步骤:

1、安装MySQL及C++ Connector
2、安装Boost(因为C++ Connector依赖这个库)
3、新建MFC工程,选择【64位】编译器(因为MySQL是64位的)
4、选择"项目->属性->VC++目录",根据你的安装目录配置【包含目录】【库目录】

如:
包含目录添加  C:\Program Files\MySQL\Connector.C++ 1.1\include;
包含目录添加  I:\Program Files\boost_1_64_0;
库目录添加    C:\Program Files\MySQL\Connector.C++ 1.1\lib\opt;
以具体安装目录为准,注意用英文分号隔开

5、在"项目->属性->链接器->输入->附加依赖项"中添加mysqlcppconn.lib
6、将C:\Program Files\MySQL\Connector.C++ 1.1\lib\opt\mysqlcppconn.dll复制到项目源代码目录下

以下为可选步骤

7、将MySQLServer.h, MySQLServer.cpp复制到你的项目目录下,再通过【添加现有项】加入你的项目中
注:(MySQLServer是我简单封装了的C++ Connector, 你也可以跳过这步,直接使用C++ Connector, 参见官方文档)
8、之后你可以继承MySQLServer,或者直接使用MySQLServer连接数据库,具体的请看例子

MySQLServer核心函数

  1. MySQLServer(host, username, password, schema); // 在构造函数中直接连接数据库,schema可选。
  2. execute(sql); // 执行SQL语句
  3. executeQuery(sql); // 执行SQL查询语句
  4. prepare(sql); // 准备SQL语句,语句中带有未知参数,用?表示
  5. //具体使用请看例子
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注