c++ mysql 配置文件_C++操作数据库写入到json配置文件中
1. 這次加了對int和varchar的處理
#include?
#include?
#include?
#include?
#include?"json/json.h"
#include?
#include?
using?namespace?std;
int?main(int?argc,?char*?argv[])
{
MYSQL?mysql;
mysql_init(?&mysql?);
mysql_real_connect(
&mysql,
"192.168.16.114",
"root",
"root",
"test",
3306,
NULL,
0
);
string?sql?=?"show?tables;";
mysql_query(?&mysql,?sql.c_str()?);
MYSQL_RES?*result?=?NULL;
result?=?mysql_store_result(?&mysql?);
vector?tables;
MYSQL_ROW?row?=?NULL;
//得到所有的表
row?=?mysql_fetch_row(?result?);
while?(?NULL?!=?row?)
{
tables.push_back(?row[0]?);
cout?<
row?=?mysql_fetch_row(?result?);
}
for(vector::const_iterator?cit?=?tables.begin();?cit?!=?tables.end();?++?cit)
{
sql?=?"select?*?from?"?+?*cit;
mysql_query(?&mysql,?sql.c_str()?);
cout?<
//得到表中列的數量
result?=?mysql_store_result(?&mysql?);
MYSQL_FIELD*?field?=?NULL;
ofstream?os;
string?tableName?=?*cit?+?".json";
os.open(?tableName.c_str()?);
Json::Value?jsonTable;
MYSQL_ROW?row1?=?mysql_fetch_row(?result?);
int?field_count?=?mysql_num_fields(?result?);
while?(?NULL?!=?row1?)
{
Json::Value?jsonRow;
for(int?i?=?0;?i?
{
field?=?mysql_fetch_field_direct(?result,?i?);
switch(field->type)
{
case?MYSQL_TYPE_TINY:
cout?<
break;
case?MYSQL_TYPE_SHORT:
cout?<
break;
case?MYSQL_TYPE_BLOB:
cout?<
break;
case?MYSQL_TYPE_LONG:
jsonRow[field->name]?=?Json::Value(?atoi(row1[i])?);
cout?<
break;
case?MYSQL_TYPE_VAR_STRING:
cout?<
jsonRow[field->name]?=?Json::Value(?row1[i]?);
break;
}
}
row1?=?mysql_fetch_row(?result?);
//cout?<
jsonTable.append(jsonRow);
}
os?<
os?<
os.close();
}
return?0;
}
上面只處理了一些兩種類型 其他類型如下
MYSQL_TYPE_TINY?????????????????????TINYINT字段
MYSQL_TYPE_SHORT????????????????????SMALLINT字段
MYSQL_TYPE_LONG?????????????????????INTEGER字段
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取代
總結
以上是生活随笔為你收集整理的c++ mysql 配置文件_C++操作数据库写入到json配置文件中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java用户界面项目_结对项目(带图型用
- 下一篇: linux cmake编译源码,linu