C++封装mysql的基本API
来源:互联网 发布:杭州淘宝诈骗案进展 编辑:程序博客网 时间:2024/06/04 00:29
最近在做数据库的实验,觉得c语言提供的关于mysql的API用起来好麻烦,于是就用C++进行了简单的封装,同时也算对mysql的基本API的一个学习吧
代码如下
SQL类的定义
#pragma once#include<string>#include<mysql/mysql.h>class Sql{ public: //构造函数用来初始化mysql和连接数据库 Sql(std::string iP,std::string name,std::string passwd,std::string database); //析构函数用来做数据库的善后处理 ~Sql(); //对数据库进行查询操作 bool select(const std::string &operation); //查询操作完就释放结果集 bool selectOnce(const std::string &operation); //对数据库进行插入操作 bool insert(const std::string &operation); //对数据库进行跟新操作 bool update(const std::string &operation); //获取行 MYSQL_ROW getRow(void); //获取列数 int getColNum(void); //获得field数量 int getFieldNum(void); //打印获得的操作结果 void print_result(void); //释放保存在该连接的操作结果集 void freeResult(void); private: std::string server_ip; //数据库地址 std::string user_name; //用户名 std::string password; //用户密码 std::string database_name; //数据库名 private: MYSQL *mysql_conn; MYSQL_RES *mysql_res; MYSQL_ROW mysql_row;};
SQL类的实现
#include <iostream>#include <string>#include <mysql/mysql.h>#include "mysql.h"#include <stdio.h>//构造函数Sql::Sql(const std::string ip,const std::string name,const std::string passwd,const std::string database){ //初始化自定义变量 server_ip = ip; user_name = name; password = passwd; database_name = database; //初始化mysql mysql_conn = mysql_init(NULL); //连接mysql if(!mysql_real_connect(mysql_conn,server_ip.c_str(),user_name.c_str(),password.c_str(),database_name.c_str(),0,NULL,0)) { exit(1); } else { ; }}//操作函数bool Sql::select(const std::string &operation){ if(mysql_query(mysql_conn,operation.c_str())) { std::cout<<"mysql操作有误,请确认后重试\n"<<std::endl; return false; } //将查询结果存储在结果集 mysql_res = mysql_use_result(mysql_conn); if(getRow() == NULL) { return false; } return true;}//操作完就释放结果集bool Sql::selectOnce(const std::string &operation){ if(mysql_query(mysql_conn,operation.c_str())) { std::cout<<"mysql操作有误,请确认后重试\n"<<std::endl; return false; } //将查询操作结果存储在结果集 mysql_res = mysql_use_result(mysql_conn); if(getRow() == NULL) { return false; } freeResult(); return true;}//对数据库进行插入操作bool Sql::insert(const std::string &operation){ if(mysql_query(mysql_conn,operation.c_str())) { printf("数据库插入操作失败\n"); return false; } return true;}//对数据库进行跟新操作bool Sql::update(const std::string &operation){ if(mysql_query(mysql_conn,operation.c_str())) { printf("跟新失败\n"); return false; } return true;}//释放保存在该连接的操作结果集void Sql::freeResult(void){ mysql_free_result(mysql_res);}//获得field的数量int Sql::getFieldNum(void){ return ::mysql_field_count(mysql_conn);}MYSQL_ROW Sql::getRow(void){ return mysql_fetch_row(mysql_res);}//获取结果集的列数int Sql::getColNum(void){ return mysql_num_fields(mysql_res);}//打印操作结果void Sql::print_result(void){ //获得每行的字段数 int num = mysql_num_fields(mysql_res); //循环读取所有行 while((mysql_row = mysql_fetch_row(mysql_res)) != NULL) { //将每行字段都读出来 for(int i = 0; i < num; i++) { std::cout<<mysql_row[i]<<" "; } std::cout<<std::endl; }}Sql::~Sql(){ //关闭mysql连接 mysql_close(mysql_conn);}
当然大家可以根据自己的需求进行适当的修改,如果对我写的有啥地方不满,欢迎指教,毕竟我是新手嘛
0 0
- 封装MySQL C API 基本操作
- C++封装mysql的基本API
- Linux mysql c API封装
- C++封装MySQL C API
- 简单易用的mysql c api 封装类
- C++封装 mysql C api遇到的问题
- java的mysql api封装
- C++封装MySQL预处理C API
- android UiAutomator基本api的二次封装
- MYSQL C API 封装和MYSQL连接池
- MySQL API的基本使用
- Mysql数据库学习(四):常用Mysql C API 介绍和使用、封装一个访问Mysql数据库的类MysqlDB
- 自已封装c api mysql--connection.hpp(初步)
- 利用mysql C API的基本操作(包括对图片的上传下载操作)
- 详细的MySQL C API
- 详细的MySQL C API
- mysql c api的使用
- mysql C API的使用
- java parseInt和valueof的区别
- 今天学习了正则表达式
- Python学习----面向对象高级编程
- 当页面完全加载完成后执行一个js函数
- jQuery中 wrap() wrapAll() 与 wrapInner()的区别
- C++封装mysql的基本API
- My TaskList
- 从MSSQL转大量数据到ORACLE的解决方案
- java 实现倒计时的效果
- NOIP2014普及组解题报告 -----by IAMACER
- kernel分析
- 阿里飞天云平台架构简介
- 正则表达式
- 代码实现自定义键盘工具条