为了快捷使用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