📄 rctdata.h
字号:
#include<iostream>
#include<iomanip>
#include<string>
#include<windows.h>
#include<mysql/mysql.h>
using namespace std;
/*******Rct****/
#pragma comment(lib,"libmysql.lib")
class MySqlConn
{
private:
MYSQL *mysql; //结构体
MYSQL_RES *res; //存储数据集的结构体
MYSQL_ROW row; //行集 指针
MYSQL_FIELD *field; //属性集 指针
string host; //主机名或IP地址
string username; //用户名
string password; //密码
string database; //数据库名
int port; //端口号
string socket;
int client_flag; //
public:
MySqlConn() //构造函数
{
}
bool connect(string UserName,string Password,string DataBase) //必需信息
{
host="localhost";
username=UserName;
password=Password;
database=DataBase;
port=3306;
socket="\0";
client_flag=0;
if( (mysql=mysql_init(NULL))!=NULL )
{
cout<<"初始化成功..."<<endl;
}
else
{
cout<<"初始化失败!";
return false;
}
if( (mysql_real_connect(mysql,host.c_str(),username.c_str(),password.c_str(),
database.c_str(),port,socket.c_str(),client_flag))!=NULL)
{
cout<<"连接成功..."<<endl;
}
else
{
cout<<"连接失败!";
return false;
}
return true;
}
bool connect(string h,string un,string ps,string db,int p,string so,int cl)//重载connect 方法
{
host=h;
username=un;
password=ps;
database=db;
port=p;
socket=so;
client_flag=cl;
if( (mysql=mysql_init(NULL))!=NULL )
{
cout<<"初始化成功..."<<endl;
}
else
{
cout<<"初始化失败!";
return false;
}
if( (mysql_real_connect(mysql,host.c_str(),username.c_str(),password.c_str(),
database.c_str(),port,socket.c_str(),client_flag))!=NULL)
{
cout<<"连接成功..."<<endl;
}
else
{
cout<<"连接失败!";
return false;
}
return true;
}
MYSQL_RES* query(string queryStr) //返回一个MYSQL_RES 指针
{
mysql_real_query(mysql,queryStr.c_str(),queryStr.length());
res=mysql_use_result(mysql);
return res;
}
void showQuery(string queryStr) //打印查询的表
{
mysql_real_query(mysql,queryStr.c_str(),queryStr.length());
res=mysql_use_result(mysql);
int fieldsNum=mysql_num_fields(res);
while(field=mysql_fetch_field(res))
{
cout<<field->name<<"\t";
}
cout<<endl<<endl;
while((row=mysql_fetch_row(res))!=NULL)
{
for(int i=0;i<fieldsNum;i++)
{
string type;
type=typeid(row[i]).name();
if(type=="float")
{
cout<<setiosflags(ios::fixed)<<setprecision(2)<<row[i]<<"\t";
}
else
cout<<row[i]<<"\t";
}
cout<<endl;
}
}
bool execute(string execuStr) //执行SQL语句
{
if(! (mysql_real_query(mysql,execuStr.c_str(),execuStr.length()) ))
{
cout<<"执行成功...\n";
return true;
}
else
{
cout<<"语句不符合约束条件,未能执行成功!\n";
return false;
}
}
int affectedRows() //最后一次insert delete update语句所影响的行数
{
return (int)mysql_affected_rows(mysql);
}
void close() //断开连接
{
mysql_close(mysql);
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -