您的位置:首页 > 编程语言 > C语言/C++

C++封装MySql接口

2013-12-15 20:47 330 查看
#include "stdafx.h"
[align=left]#include "winsock.h"[/align]
[align=left]#include "mysql.h"[/align]
[align=left]#pragma comment ( lib,"libmysql.lib" )[/align]
[align=left]#include <iostream>[/align]
[align=left]using namespace std;[/align]
[align=left]
[/align]
[align=left]// SQL管理类[/align]
[align=left]class CMySqlManager[/align]
[align=left]{[/align]
[align=left]public :[/align]
           CMySqlManager (
);
          ~ CMySqlManager (
);
[align=left]
[/align]
[align=left]public :[/align]
           void  Prepare (
);
           void  FetchAndStore (char*
);
           void  ShowToEdit (
);
           void DisconnectSQL (
);
[align=left]
[/align]
[align=left]private :[/align]
[align=left]           MYSQL m_MySql ;[/align]
[align=left]           MYSQL_RES *m_pRes ;[/align]
[align=left]           MYSQL_ROW m_Row ;[/align]
           char  m_FlagOfConnect ;    //
连接成功与否标志  1 成功查询 0 为查询失败
           char  m_FlagOfQuery ;       //
查询成功与否的标志 1 成功查询 0 为查询失败
[align=left]};[/align]
[align=left]
[/align]
CMySqlManager ::CMySqlManager(
)
[align=left]{[/align]
           m_FlagOfConnect =
0;
           m_FlagOfQuery =
0;
[align=left]}[/align]
[align=left]
[/align]
CMySqlManager ::~CMySqlManager(
)
[align=left]{[/align]
           DisconnectSQL (
);
[align=left]}[/align]
[align=left]
[/align]
void CMySqlManager::Prepare (
)
[align=left]{[/align]
[align=left]           mysql_init(&m_MySql );[/align]
           if(m_FlagOfConnect ==
0)
[align=left]          {[/align]
                    //
连接Mysql服务器,本例使用本机作为服务器。
                    //
访问的数据库名称为“msyql”,参数中的user为你的登录用户名,***为登录密码,需要根据你的实际用户进行设置
                    if (!mysql_real_connect (&MySql, "localhost" , "root", "1" , "gamedb3" ,
3306, 0, 0))  
                              cout<<"mysql_real_connect
failure!" <<endl;
[align=left]                    else[/align]
[align=left]                   {[/align]
                              cout<<"Connect
Successed!" <<endl;
                              m_FlagOfConnect =
1;
[align=left]                   }[/align]
[align=left]          }[/align]
[align=left]           else[/align]
                    cout<<"Connected.
Dupliacate Connect Fail " <<endl;
[align=left]}[/align]
[align=left]
[/align]
[align=left]void CMySqlManager::FetchAndStore (char* SQL)[/align]
[align=left]{[/align]
[align=left]           if(m_FlagOfConnect )[/align]
[align=left]          {[/align]
                    //
查询mysql数据库中的user表
[align=left]                    if ( mysql_query (&m_MySql , SQL))[/align]
[align=left]             {[/align]
                      cout<<"mysql_real_query
failure!" <<endl;
                      m_FlagOfQuery =
0;
[align=left]           return ;[/align]
[align=left]              }[/align]
[align=left]
[/align]
                    //
存储结果集
[align=left]                    m_pRes = mysql_store_result (&m_MySql);[/align]
[align=left]                    if (NULL == res)[/align]
[align=left]                   {[/align]
                              cout<<"mysql_store_result
failure!" <<endl;
                              m_FlagOfQuery =
0;
[align=left]                   }[/align]
[align=left]                    else[/align]
[align=left]                   {[/align]
                              m_FlagOfQuery =
1;
                              cout<<"Query
Succeed! " <<endl;
[align=left]                   }[/align]
[align=left]          }[/align]
[align=left]           else[/align]
                    cout<<"Fail
To Quey " <<endl<< "
Connected Fail " <<endl;
[align=left]}[/align]
[align=left]
[/align]
void CMySqlManager::ShowToEdit (
)
[align=left]{[/align]
           if(m_FlagOfQuery ==
1)
[align=left]          {[/align]
                    cout<<"Load
Data ...... " <<endl<< endl;
                    int j =
0;
                    j = mysql_num_fields (m_pRes);    //
获取每条记录的字段数
[align=left]                    while(row = mysql_fetch_row(m_pRes ))[/align]
[align=left]                   {[/align]
                              for(int k =
0; k < j ; k++)
                                       cout<<row [k]<< "  
" ;
[align=left]                              cout<<endl <<endl;[/align]
[align=left]                   }[/align]
[align=left]                    mysql_free_result (m_pRes);[/align]
[align=left]          }[/align]
[align=left]           else[/align]
                    cout<<"
Fetch Failed!" <<endl;
[align=left]}[/align]
[align=left]
[/align]
void CMySqlManager::DisconnectSQL (
)
[align=left]{[/align]
[align=left]           mysql_close(&m_MySql );[/align]
           m_FlagOfConnect =
0;
           m_FlagOfQuery =
0;
[align=left]           cout<<"DisConnected!" <<endl;[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]int _tmain( int argc , _TCHAR* argv[])[/align]
[align=left]{[/align]
[align=left]           CMySqlManager MySql;[/align]
[align=left]
[/align]
           MySql.Prepare (
);
           MySql.FetchAndStore ("select 
id,name,mate  from  cq_user where id=500001 " );
           MySql.ShowToEdit (
);
           MySql.FetchAndStore ("select 
id,name,mate  from  cq_user where id=500002 ");
    MySql.ShowToEdit (
);
           MySql.DisconnectSQL (
);
[align=left]
[/align]
           getchar(
);
[align=left]           return 0;[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]  [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: