mysql connector c++测试

来源:互联网 发布:python android接口 编辑:程序博客网 时间:2024/05/16 04:04

可以用connector c++操作mysql。

1. 从官网下载对应的connector c++版本。

http://dev.mysql.com/downloads/connector/cpp/

我这里选择的是


64位的noinstall版本。

复制解压后的文件夹到相应的工程下。(方便移植,拷到别人电脑上的时候,不需要别人下载配置路径什么的。)


2. 包含相对路径。

使用变量ProjectDir。该路径表示项目文件所在路径。“..\”表示上一层目录。



3. 链接库配置。

代码中加入:#pragma  comment(lib,"mysqlcppconn.lib") 动态链接。(ps:connector lib下还有一个mysqlcppconn-static.lib 是静态链接库,网上说不太稳定)

connector lib中的mysqlcppconn.dll拷到工程源目录下。

同时:mysql lib中的libmysql.dll也拷到了工程源目录下, 运行时要用到。

(.lib和.dll的区别与联系见 http://blog.csdn.net/u012420309/article/details/51363101)


4. 修改端口号(不修改是默认的)。

打开mysql的配置文件my-default.ini,将#port = ... 修改为port=3306。(也就是去掉注释赋值)

配置文件修改后,要重启mysql。重启简单方法见上一篇博客。


代码:

#include "mysql_connection.h"#include "mysql_driver.h"#include <cppconn/statement.h>#include <iostream>#include "string"using namespace std;#pragma  comment(lib,"mysqlcppconn.lib")int main(){    sql::mysql::MySQL_Driver *driver = NULL;    sql::Connection *con = NULL;//初始化驱动    driver = sql::mysql::get_mysql_driver_instance();    //建立链接    con = driver->connect("tcp://localhost:3306", "root", "zq");    sql::Statement * stmt = con->createStatement();    stmt->execute("use test");   //查询    sql::ResultSet * result = stmt->executeQuery("select * from testuser");    while (result->next()) {int id = result->getInt(1); //也可以result->getInt("id");string name = result->getString(2).c_str(); //注意这里要转换c_str()        cout << id << ":" << name << endl;    }    con->close();    delete stmt;    delete con;    return 0;}

运行结果:

1001:google 

1002:kingsoft


PS:这里用到的数据库test和表testuser是上一篇博客里命令行生成的。具体长相:

+------+----------+| id   | name     |+------+----------+| 1001 | google   || 1002 | kingsoft |+------+----------+

当然,也可以通过c++生成。

stmt->execute("create database test");stmt->execute("use test");stmt->execute("create table testuser(id INT, name CHAR(20))");//插入string strsql = "insert into testuser(id,name)values(1001,'google')";for (int i = 0; i < 10; i++){    stmt->execute(strsql.c_str());}
其实就是执行命令行操作。


PPS: mysql_connection.h里包含了

#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>

可以把boost放到mysql-connector的include目录下。也可以在工程的包含目录中添加boost的路径。

0 0
原创粉丝点击