博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL操作简单实现
阅读量:6156 次
发布时间:2019-06-21

本文共 7557 字,大约阅读时间需要 25 分钟。

1 #pragma once 2  3 #include "mysql.h" 4 #include 
5 #pragma comment(lib,"libmySQL.lib") 6 7 class Dboperator 8 { 9 public:10 Dboperator();11 ~Dboperator();12 public:13 //设置数据库主机IP、端口号、账号、密码14 void SetValue(std::string host,UINT port,std::string db,15 std::string user,std::string password);16 //判断表是否存在,如果存在返回TRUE17 BOOL IsTable(CString &tablename);18 //查询数据19 MYSQL_RES* Select(CString &selectstl);20 //修改数据21 BOOL Updata(CString &updatasql);22 //新建一个表23 BOOL CreateTable(CString &createsql);24 //增加数据25 BOOL Insret(CString &insertsql);26 //数据库连接27 BOOL ConnDb();28 //释放MYSQL_RES资源29 void ReleaseAfterQuerySQL(MYSQL_RES *SQL_RES);30 //删除某张数据表31 BOOL Destroy(CString &deletsql); 32 //关闭数据库连接 33 void DisConnect();34 private:35 //查询SQL的功能函数36 BOOL query(CString &querysql);37 private:38 BOOL m_bConnected;//判断是否连接39 MYSQL m_MyData;40 std::string m_host;41 std::string m_user; 42 std::string m_passwd;43 std::string m_dbname;44 UINT m_port;45 };
1 #include "stdafx.h"  2 #include "Dboperator.h"  3   4 /************************************************************************  5 功能描述 :Dbopreator 构造函数 ,设定初始值  6 输入参数 :  7 输出参数 :无  8 返回值   :无  9 ************************************************************************/ 10 Dboperator::Dboperator() 11 { 12     m_host = "192.168.59.55"; 13     m_user = "root"; 14     m_passwd = "123456"; 15     m_dbname = "filedata"; 16     m_port = 3306; 17     m_bConnected = false; 18 } 19  20 /************************************************************************ 21 功能描述 :Dbopreator 析构函数 22 输入参数 : 23 输出参数 :无 24 返回值   :无 25 ************************************************************************/ 26 Dboperator::~Dboperator() 27 { 28      29 } 30  31 /************************************************************************ 32 功能描述 :SetValue 设置数据库的属性 33 输入参数 :string host,UINT port,string db, 34            string user,string password 35 输出参数 :无 36 返回值   :无 37 ************************************************************************/ 38 void Dboperator::SetValue(std::string host,UINT port,std::string db, 39                           std::string user,std::string password) 40 { 41     m_host = host; 42     m_port = port; 43     m_dbname = db; 44     m_user = user; 45     m_passwd = password; 46 } 47  48 /************************************************************************ 49 功能描述 :DisConnect 断开数据库连接 50 输入参数 : 51 输出参数 :无 52 返回值   :无 53 ************************************************************************/ 54 void Dboperator::DisConnect() 55 { 56     if(m_bConnected) 57     { 58         mysql_close(&m_MyData); 59 //        AfxMessageBox(_T("数据库断开成功")); 60         m_bConnected = FALSE; 61     } 62 } 63  64 /************************************************************************ 65 功能描述 :ConnDb 连接数据库 66 输入参数 : 67 输出参数 :无 68 返回值   :BOOL 判断是否连接成功 69 ************************************************************************/ 70 BOOL Dboperator::ConnDb() 71 { 72     MYSQL * pMySql = NULL; 73     pMySql = mysql_init(&m_MyData); 74     if (pMySql == NULL) 75     { 76         return false; 77     } 78     DisConnect(); 79     pMySql = mysql_real_connect(&m_MyData, m_host.c_str(),m_user.c_str(),  80                         m_passwd.c_str(),m_dbname.c_str(), m_port, NULL, 0); 81     if (pMySql == NULL) 82     { 83         return false; 84     } 85     m_bConnected = true; 86     return true; 87 } 88  89 /************************************************************************ 90 功能描述 :Select 查询数据库 91 输入参数 :CString &selectsql 92 输出参数 :无 93 返回值   :MYSQL_RES* 94 ************************************************************************/ 95 MYSQL_RES* Dboperator::Select(CString &selectsql) 96 { 97     USES_CONVERSION; 98     char *ch_query = (char*)T2CA(selectsql); 99     if(mysql_real_query(&m_MyData,ch_query,(UINT)strlen(ch_query))!=0)100     {101         return NULL;102     }103     MYSQL_RES *result;104     int FieldNum = mysql_field_count(&m_MyData);105     if ( FieldNum == 0 )106     {107         return NULL;108     }109     if(!(result=mysql_use_result(&m_MyData)))110     {111         return NULL;112     }113     return result;114 115 }116 117 /************************************************************************118 功能描述 :Updata 更新数据库119 输入参数 :CString &updatasql120 输出参数 :无121 返回值   :BOOL 判断是否更新成功122 ************************************************************************/123 BOOL Dboperator::Updata(CString &updatasql)124 {125     if(!query(updatasql))126     {127         return FALSE;128     }129     return TRUE;130 }131 132 /************************************************************************133 功能描述 :query 数据库查询方法134 输入参数 :CString querysql135 输出参数 :无136 返回值   :BOOL 判断是否查询成功137 ************************************************************************/138 BOOL Dboperator::query(CString &querysql)139 {140     USES_CONVERSION;141     char *pStr = (char*)T2CA(querysql);142     if (!m_bConnected)143     {144         AfxMessageBox(_T("数据库未连接!"));145         return FALSE;146     }147     if(mysql_real_query(&m_MyData,pStr,(UINT)strlen(pStr))!=0)148     {149         return FALSE;150     }151     return TRUE;152 }153 154 /************************************************************************155 功能描述 :CreateTable 创建数据库表156 输入参数 :CString &createsql157 输出参数 :无158 返回值   :BOOL 判断是否创建成功159 ************************************************************************/160 BOOL Dboperator::CreateTable(CString &createsql)161 {162     if(!query(createsql))163     {164         return FALSE;165     }166     return TRUE;167 }168 169 /************************************************************************170 功能描述 :Insret 增加数据171 输入参数 :CString &insertsq172 输出参数 :无173 返回值   :BOOL 判断是否增加成功174 ************************************************************************/175 BOOL Dboperator::Insret(CString &insertsql)176 {177     if(!query(insertsql))178     {179         return FALSE;180     }181     return TRUE;182 }183 184 /************************************************************************185 功能描述 :Destroy 删除表186 输入参数 :CString &deletesql187 输出参数 :无188 返回值   :BOOL 判断是否删除成功189 ************************************************************************/190 BOOL Dboperator::Destroy(CString &deletesql)191 {192     if(!query(deletesql))193     {194         return FALSE;195     }196     return TRUE;197 }198 199 /************************************************************************200 功能描述 :IsTable 查询表是否存在201 输入参数 :CString &tablename202 输出参数 :无203 返回值   :BOOL 判断表是否存在204 ************************************************************************/205 BOOL Dboperator::IsTable(CString &tablename)206 {207     CString istablesql;208     istablesql.Format("select * from %s",tablename);209     MYSQL_RES *result = Select(istablesql);210     if(result == NULL)211     {212         return FALSE;213     }214     else215     {216         ReleaseAfterQuerySQL(result);217         return TRUE;218     }219 }220 221 /************************************************************************222 功能描述 :ReleaseAfterQuerySQL 释放MYSQL_RES资源223 输入参数 :MYSQL_RES *SQL_RE224 输出参数 :无225 返回值   :无226 ************************************************************************/227 void Dboperator::ReleaseAfterQuerySQL(MYSQL_RES *SQL_RES)228 {229     if (NULL != SQL_RES)230     {231         mysql_free_result(SQL_RES);232         SQL_RES =NULL;233     }234 }

 

转载于:https://www.cnblogs.com/longcheng2012/archive/2012/11/01/2749308.html

你可能感兴趣的文章
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>
Microsoft Licenses Flash Lite for Windows Mobile Users
查看>>
HDOJ 2020 绝对值排序
查看>>
HDOJ/HDU 2560 Buildings(嗯~水题)
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>
java学习:jdbc连接示例
查看>>