今天在学习Swift操作数据的时候突然想到原来写采集CSDN数据时用到数据库。想想C++操作数据库也是值得纪录的。在操作类之前,要用到一个.lib库。我先上传。
libmysql.lib
项目中设置好这个lib库就 行了,然后下面是简单的操作代码:
头文件
源码:
mysql.h
还有这个头文件,是MYSQL的。不然好多类似不能识别。这个头文件加入到工程编译就能正常通过了。
我在这里放出一个完成的采集CSDN的项目源码:ItHtw_NEW
libmysql.lib
项目中设置好这个lib库就 行了,然后下面是简单的操作代码:
头文件
#pragma once #include#include #pragma comment(lib,"libmysql.lib") using namespace std; class CMysqlHelper { public: bool m_connected; MYSQL m_mysql; MYSQL_RES *m_res; MYSQL_ROW m_row; MYSQL_FIELD *m_fd; CMysqlHelper(void); ~CMysqlHelper(void); bool init(char* _host,char* _base,char* _user,char* _pwd); void query(char* sql,vector &_result); void insert(char* sql); bool excute(char* sql); static CMysqlHelper* getInstance(); private: static CMysqlHelper* pHelper; public: void close(void); bool isConnected(void); };
源码:
#include "StdAfx.h" #include "MysqlHelper.h" CMysqlHelper* CMysqlHelper::pHelper = NULL; CMysqlHelper::CMysqlHelper(void) { m_connected = false; } CMysqlHelper::~CMysqlHelper(void) { if(m_connected) mysql_close(&m_mysql); m_connected = false; } bool CMysqlHelper::init(char* _host,char* _base,char* _user,char* _pwd) { mysql_init(&m_mysql); if (!mysql_real_connect(&m_mysql,_host,_user,_pwd,_base,3306,NULL,0)) { mysql_errno(&m_mysql);//¡¨Ω”≥ˆ¥Ì const char* error = mysql_error(&m_mysql); AfxMessageBox(error); return false; } else { m_connected = true; //…Ë÷√±‡¬Î∏Ò Ω,∑Ò‘Ú‘⁄cmdœ¬Œfi∑®œ‘ æ÷–Œƒ mysql_query(&m_mysql,"SET NAMES GBK"); return true; } } void CMysqlHelper::query(char* sql,vector&_result) { if (!excute(sql)) { AfxMessageBox("≤È—Ø ß∞‹"); return; } m_res = mysql_store_result(&m_mysql);//±£¥Ê≤È—ØµΩµƒ ˝æ›µΩresult if (m_res != NULL) { //TRACE("\n\n"); //while((m_fd = mysql_fetch_field(m_res))) // TRACE("%s ",m_fd->name);//¡–÷µ //TRACE("\n"); int nColumn = mysql_num_fields(m_res);//»°À˘”–µƒ¡– while((m_row = mysql_fetch_row(m_res))) { CStringArray* arrays = new CStringArray; int nIndex = 0; while(nIndex < nColumn) { arrays->Add(CString(m_row[nIndex])); //TRACE("%s ",m_row[nIndex]); nIndex++; } _result.push_back(arrays); } } mysql_free_result(m_res); } void CMysqlHelper::insert(char* sql) { if (!excute(sql)) { AfxMessageBox("–¥»Î ß∞‹"); return; } } bool CMysqlHelper::excute(char* sql) { if(!m_connected) { AfxMessageBox(" ˝æ›ø‚Œ¥≥ı ºªØ!"); return false; } bool _ok = mysql_query(&m_mysql,sql) == 0; if(!_ok) { const char* _error = mysql_error(&m_mysql); GT_WriteReleaseLog("----------¥ÌŒÛ»’÷æ----------"); GT_WriteReleaseLog(_error); } return _ok; } CMysqlHelper* CMysqlHelper::getInstance() { if(pHelper == NULL) pHelper = new CMysqlHelper; return pHelper; } void CMysqlHelper::close(void) { if(pHelper != NULL) delete pHelper; pHelper = NULL; } bool CMysqlHelper::isConnected(void) { return this->m_connected; }
mysql.h
还有这个头文件,是MYSQL的。不然好多类似不能识别。这个头文件加入到工程编译就能正常通过了。
我在这里放出一个完成的采集CSDN的项目源码:ItHtw_NEW
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2302
- 用户1336
- 访客10968998
每日一句
Qingming Festival invites us to honor ancestors with quiet reflection and respect.
清明节邀请我们以静思与敬意祭奠祖先。
清明节邀请我们以静思与敬意祭奠祖先。
新会员