在C++项目中使用了Mysql数据库,为了方便后续开发查询,也方便没有使用过C++操作mysql数据库的同学上手,所以在此分享一下基本的C++操作mysql数据库的简单类,这个类满足最基本的需求,你可以在这个基础上增加,再包装,让操作更加便捷,功能更加丰富。提供的类简单化,也是方便上手,容易理解。
头文件CDataBase.h:
#includewindows.h#includemysql.hclassCDataBase{private:MYSQLm_mysql;char*m_host;char*m_user;char*m_pwd;char*m_db;public:CDataBase(char*host,char*user,char*pwd,char*db);~CDataBase();boolNonQuery(constchar*chSql);//非查询,增删改MYSQL_RES*Query(constchar*chSql);//查询,返回查询结果voidFreeResult(MYSQL_RES*result);//释放查询占用的资源intOpen();//打开数据库voidClose();//关闭数据库};
源码文件CDataBase.cpp:
#includeCDataBase.hCDataBase::CDataBase(char*host,char*user,char*pwd,char*db){m_host=host;m_user=user;m_pwd=pwd;m_db=db;}CDataBase::~CDataBase(){}intCDataBase::Open(){if(!mysql_init(m_mysql))return-1;//初始化连接失败if(!mysql_real_connect(m_mysql,m_host,m_user,m_pwd,m_db,0,0,0))return-2;//连接mysql数据库失败return0;//打开数据库成功}voidCDataBase::Close(){mysql_close(m_mysql);}boolCDataBase::NonQuery(constchar*sql){if(mysql_real_query(m_mysql,sql,strlen(sql))==0)returntrue;returnfalse;}MYSQL_RES*CDataBase::Query(constchar*sql){MYSQL_RES*rs=NULL;if(NonQuery(sql)){rs=mysql_store_result(m_mysql);}returnrs;}voidCDataBase::FreeResult(MYSQL_RES*result){if(result)mysql_free_result(result);}
使用代码示例文件main.cpp:
#includeiostreamusingnamespacestd;#includeCDataBase.h#pragma