mysql handler.h详解_mysqlmyhandler.h

#ifndef MYSQLMYHANDLER_H

#define MYSQLMYHANDLER_H

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define MAX_CON_COUNT 10;

struct Conn_name_stat

{

QString con_name;

bool is_available; //连接是否空闲可以使用

};

//需要加上static 不然出现 multiple define error

//向量实现动态存储 ,存储最大十10个连接名,和连接名是否可以使用的状态值

//每次调用api的时候从设置,断开连接的时候删除元素

static vector g_v_conn_name_stat;

struct DBServInfo

{

QString hostname;

QString username;

QString password;

QString dbname;

int port;

QString socket;

unsigned long clientflag;

};

class Connect_Manager{

private:

static Connect_Manager* instance;

static Connect_Manager* getInstance()

{

if(instance==NULL)

{

instance = new Connect_Manager;

return instance;

}

else {

return instance;

}

}

Connect_Manager(){}

struct DBServInfo

{

QString hostname;

QString username;

QString password;

QString dbname;

int port;

QString socket;

unsigned long m_clientflag;

};

//存放连接的状态,和线程id

//vector serv_conn;

enum

{

MYSQL_USER_STATUS_INIT = 0,

MYSQL_USER_STATUS_READY,

MYSQL_USER_STATUS_BUSY,

mysql_user_status_TRAN,

MYSQL_USER_STATUS_FAILE,

};

bool m_conn_state; //当前用户的连接状态

int m_index; //当前用户连接的序号

};

class MysqlMyHandler

{

public:

MysqlMyHandler();

~ MysqlMyHandler();

void initConn(QString& hostname,QString& username,QString& password,QString& dbname,

int& port,QString& socket,unsigned long& m_clientflag,QString& conn_name);

bool insertData(const QString tablename,QVariantMap map);

bool deleteData(const QString sqlstatement);

bool updateData(const QString sqlstatement);

const QSqlResult* selectData(const QString& sqlstatement);

//按照指定行排列,参数:1.一条sql语句;2. order by 的行字段,order by 子句在最后

const QSqlResult* selectDataOrder(const QString& table_name, const QString &col_name);

//sql 语句 解析封装后再执行基础操作

bool SqlStatementDelete(const QString tablename,const QString exp);

bool SqlStatementUpdate(const QString tablename,const QString exp);

bool deleteAllDataByTruncate(const QString tablename);

bool deleteAllDataByDelete(const QString tablename);

// 返回值: 查询结果集; 参数 :SQL 查询语句

void setDBConn(); //设置mysql服务器参数

void closeConn();

// 支持 多条SQL语句的分割,以供调用基础接口函数使用

//返回解析的字符串

const QSqlResult* multilSqlStatemtSelect(const QString& sqlstatement);

bool checkDBStatus(QString conname);

QMap getTableInfo(QString table);

bool openState;

// Conn_name_stat m_conn_name_stat[10]; //预先设置10个可以使用的连接,当启用1一个连接的时候设置一个连接,同时不能超出了最大容量10

void printTableStruct(QString tablename);

bool hasFeaturesofTransaction();

bool startTransaction();

bool commitTransaction();

private:

QString m_mysqlInput;

QSqlDatabase m_db;

QSqlQuery m_myquery;

QString m_hostName;

QString m_userName;

QString m_password;

QString m_dbname;

int m_port;

QString m_socket;

unsigned long m_clientflag;

/*

struct DBServInfo

{

QString hostname;

QString username;

QString password;

QString dbname;

int port;

QString socket;

unsigned long clientflag;

};

*/

QString m_conn_name;

};

#endif // MYSQLMYHANDLER_H

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值