1. 到mysql官网上去下载 mysql针对c++的connector. 是一个zip 包。
安装后会在 MySQL 的安装目录下产生一个MySQL Connector C++ 1.0.5的包,里面有include和lib两个文件夹。
2. vs2008 中新建一个win32 console项目,右击项目,选择属性。
找到 配置属性--->c/c++----->常规----->附加包含目录 添加要包含的目录,这里选择上面安装后的include和lib两个文件夹.
找到 配置属性--->链接器----->常规----->附加库目录 添加要包含的目录,这里选择上面安装后的lib/opt文件夹.
找到 配置属性--->链接器----->输入----->附加依赖项 添加依赖项:mysqlcppconn.lib mysqlcppconn-static.lib
3. C:/Program Files/MySQL/MySQL Server 5.0/bin/libmySQL.dll 复制到system32下。
4. C:/Program Files/MySQL/MySQL Connector C++ 1.0.5/lib/opt/mysqlcppconn.dll 复制到system32下。
5. 测试的时候请在realease 模式下运行,因为这个connector 有BUG,在DEBUG模式下运行会崩溃。我就是因为这个破问题郁闷了一下午。
贴上一段测试代码:
// TestMysql.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
#include
#include
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
try {
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
/* Create a connection */
driver = get_driver_instance();
//连接数据库
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
/* Connect to the MySQL sj database */
//选择要连接的数据库
con->setSchema("sj");
//新建一个执行语句
stmt = con->createStatement();
//执行语句并返回结果集
res = stmt->executeQuery("SELECT * from user");
//遍历结果集
while (res->next())
{
//这里的ID是user表中的字段名
cout << res->getString("id") << endl;
}
//读取一个字符,目的是让CMD窗口停留,查看输出信息。
getchar();
delete res;
delete stmt;
delete con;
} catch (sql::SQLException &e) {
//有异常的情况下,输出异常
cout << "# ERR: SQLException in " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line "
<< __LINE__ << endl;
cout << "# ERR: " << e.what();
cout << " (MySQL error code: " << e.getErrorCode();
cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}
return EXIT_SUCCESS;
}