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]
[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]
相关文章推荐
- 《Effective C++》学习笔记条款13 以对象管理资源
- C++中extern “C”含义深层探索
- C++界面库
- 嵌入式C语言之---模块化编程
- 嵌入式C语言不可不用的关键字
- C/C++程序员面试大纲
- Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图
- 替换文件中的字符串(C语言实现)
- C++虚函数
- 在windows下使用eclipse for c++来编译c/c++
- C++基类的指针
- 虚函数
- C++ Primer Plus edition6 section3
- C语言参考手册
- const使用例程
- C++学习方法
- 嵌入式C语言优化
- 为什么C++会成功
- C语言中的32个关键字
- Product