c++中怎么实现一个mysql通用类
本篇文章给大家分享的是有关c++中怎么实现一个MySQL通用类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站建设、乌鲁木齐网络推广、小程序开发、乌鲁木齐网络营销、乌鲁木齐企业策划、乌鲁木齐品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供乌鲁木齐建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
常用的函数
初始化API库:mysql_library_init()
初始化数据结构:mysql_init()
连接数据库前的选项:mysql_options()
错误信息:mysql_error()
连接函数:mysql_real_connect()
执行SQL语句:mysql_query()
转存查询结果:mysql_store_result()
关闭连接:mysql_close()
dbctrl.h
#ifndef __DBCTRL_H__ #define __DBCTRL_H__ #include "winsock.h" #include "iostream.h" #include#include "mysql.h" #pragma comment(lib, "ws2_32.lib") #pragma comment(lib, "libmysql.lib") using namespace std; class DBctrl { private: MYSQL mydata; //MySQL对象,必备的一个数据结构 MYSQL_RES *result; //用于存放结果 建议用char* 数组将此结果转存 public: int row; //查询结果的行数 int field; //查询结果的列数 int autoNum; //上一次auto_increment的值 int errorNum; //错误代号 const char* errorInfo; //错误提示 int affectedRow; //上一次查询影响的行数 DBctrl(); //构造函数 void DBtest(int flag); void DBerror(); void DBconn(char* server, char* username, char* password, char* database,int port); void DBquery(string queryStr); void DBquery(string queryStr, char* data[100][100]); void DBclose(); }; #endif
dbctrl.cpp
#include "dbctrl.h"
//构造函数 初始化各个变量和数据
DBctrl::DBctrl()
{
mysql_library_init(0,NULL,NULL);
mysql_init(&mydata);
mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk");
row=0;
field=0;
autoNum=0;
errorNum=0;
errorInfo="ok";
affectedRow=0;
}
//编译时显示测试信息,正式使用时把此函数主题注释掉即可
void DBctrl::DBtest(int flag)
{
char* message;
switch (flag)
{
case 1:
message="Database OK!";
break;
case 2:
message="Database error!";
break;
case 3:
message="Query OK!";
break;
case 4:
message="Query error!";
break;
case 5:
message="data overflew!";
break;
default:
message=NULL;
break;
}
if (message!=NULL) cout<服务器域名或IP
char* usr=username; //username:数据库用户名
char* pwd=password; //password:数据库密码
char* dbn=database; //database:数据库名
int prt=port; //port:端口号
//这里新建变量并再赋一次值是为了调试的时候显示连接参数,其实可以不这么做
if(mysql_real_connect(&mydata,svr,usr,pwd,dbn,prt,0,0) != NULL)
DBtest(1);
else
DBtest(2);
}
//执行查询语句
void DBctrl::DBquery(string queryStr)
{
if(0==mysql_query(&mydata,queryStr.c_str()))
DBtest(3);
else
DBtest(4);
DBerror();
}
//执行查询语句(重载,有返回结果的)
void DBctrl::DBquery(string queryStr, char* data[100][100])
{
if(0==mysql_query(&mydata,queryStr.c_str()))
DBtest(3);
else
DBtest(4);
affectedRow=mysql_affected_rows(&mydata);
autoNum=mysql_insert_id(&mydata);
result=mysql_store_result(&mydata);
row=mysql_num_rows(result);//计算行数
field=mysql_num_fields(result);//计算列数
//转出数据
if(row>100 || field>100)
DBtest(5);
else
{
MYSQL_ROW line=NULL;
line=mysql_fetch_row(result);//取第一行结果
int j=0;
while(NULL!=line)//查看是否为空行,是则结束,否则将这一行的数据转存到data的一行中并取下一行
{
for(int i=0; i主体
#include "dbctrl.h"
void main()
{
DBctrl my; //刚才建的通用类
string query; //存放查询语句
char* data[100][100]; //存放查询结果
query="Select * from table1";
my.DBconn("localhost","root","123456","test",3306);
my.DBquery(query,data); //执行query中的语句,并将结果回送给data
my.DBclose(); //关闭连接
/* 此处用for循环显示data数组的内容... */
}以上就是c++中怎么实现一个mysql通用类,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
网站标题:c++中怎么实现一个mysql通用类
网站路径:http://www.jxjierui.cn/article/gejcgo.html


咨询
建站咨询
