MYSQL C API 封装和MYSQL连接池

本文介绍了作者对MYSQL C API的封装,包括如何处理多线程读写数据库、事务处理以及如何使用连接池。强调了在执行SQL后清理记录集的重要性,并提供了源码下载链接,后续将分享异步读写、事务处理和连接池的使用方法。
摘要由CSDN通过智能技术生成

为了快捷使用MYSQL官方的API接口,本人自行封装了一套MYSQL使用的快捷类。

 

注意:

      1、如果查询到的数据有多条需要把SQL语句重复执行。

       2、执行完毕select语句并没有数据的时候请注意调用ClearResult函数进行记录集指针清理,不然下次同样的SQL执行会得到自己不要的数据。如果上次SQL语句和本次SQL语句不一样的话不存在这样的问题,内部会根据SQL对比不同的时候会自动清理旧的记录集数据。

      3、当前版本用的是mysql提供的X64版本 如果需要X86请到mysql官网下载mysql数据库安装包从文件中把头文件、lib、dll进行替换就可以使用了。

源码下载地址:http://download.csdn.net/detail/wujianhuagood/9675274

 

代码:

mysql 类封装 头文件源码如下:

 

 

#pragma once
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <afxtempl.h>
#include <afxmt.h>
#include "mysql/mysql.h"
#include <windows.h>
#include <WinSock2.h>
#include <queue>
#pragma comment(lib,"wsock32.lib")
#pragma comment(lib, "mysql_api/libmysql.lib ")

//mysql参考文档
//http://www.yesky.com/imagesnew/software/mysql/manual_Clients.html
/*
*本文件是提供一些经常使用接口
*时间:2014.07.31
*作者:吴建华
*邮箱:564154394@qq.com
*/


/*
*modify:
*2016.11.07
*吴建华
* 修改事项:
*     1、mysql获取记录集函数不支持多线程所以增加了锁解决了记录集被修改的bug
*	  2、增加了mysql连接池类 并希望大量插入数据库的时候使用mysql事务处理方式
*/

/*
*	MYSQL 字段类参照表  
*	整理者:吴建华
*/
/************************************************************************
	类型值									类型描述
	MYSQL_TYPE_TINY							TINYINT字段
	MYSQL_TYPE_SHORT						SMALLINT字段
	MYSQL_TYPE_LONG							INTEGER或INT字段
	MYSQL_TYPE_INT24						MEDIUMINT字段
	MYSQL_TYPE_LONGLONG						BIGINT字段
	MYSQL_TYPE_DECIMAL						DECIMAL或NUMERIC字段
	MYSQL_TYPE_NEWDECIMAL					精度数学DECIMAL或NUMERIC
	MYSQL_TYPE_FLOAT						FLOAT字段
	MYSQL_TYPE_DOUBLE						DOUBLE或REAL字段
	MYSQL_TYPE_BIT							BIT字段
	MYSQL_TYPE_TIMESTAMP					TIMESTAMP字段
	MYSQL_TYPE_DATE							DATE字段
	MYSQL_TYPE_TIME							TIME字段
	MYSQL_TYPE_DATETIME						DATETIME字段
	MYSQL_TYPE_YEAR							YEAR字段
	MYSQL_TYPE_STRING						CHAR字段
	MYSQL_TYPE_VAR_STRING					VARCHAR字段
	MYSQL_TYPE_BLOB							BLOB或TEXT字段(使用max_length来确定最大长度)
	MYSQL_TYPE_SET							SET字段
	MYSQL_TYPE_ENUM							ENUM字段
	MYSQL_TYPE_GEOMETRY						Spatial字段
	MYSQL_TYPE_NULL							NULL-type字段
	MYSQL_TYPE_CHAR							不再重视,用MYSQL_TYPE_TINY取代		                                                        
************************************************************************/


/*
*用于变参类型 如:%d %s两种类型
*
*/
#define DATA_TYPE_INT				4	//整型
#define DATA_TYPE_CHARPTR			1	//char*类型		
#define DATA_TYPE_INVALID			0	//无效类型

/*
*select接口区分字符类型和cstring类型
*/
enum e_strType{e_ch
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值