千家信息网

c++中怎么实现一个mysql通用类

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇文章给大家分享的是有关c++中怎么实现一个mysql通用类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。常用的函数初始化API库:m
千家信息网最后更新 2024年09月22日c++中怎么实现一个mysql通用类

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

常用的函数

初始化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<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通用类,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0