From 23bd97eaa5626ad96ca3f5d3e97e93d14705ca6d Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期六, 30 三月 2019 17:50:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/yangwu1.3' into 1.3nsq --- QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h | 67 +++++++++++++++++++++------------ 1 files changed, 43 insertions(+), 24 deletions(-) diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h index bfffec3..a1b4f9d 100644 --- a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h +++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h @@ -16,9 +16,9 @@ public: static QMutex m_mutexVisit; private: - static mysqlpp::Connection* conn; + static mysqlpp::Connection *conn; public: - static mysqlpp::SimpleResult add(std::map<std::string, std::string>& columns, string tableName) { + static mysqlpp::SimpleResult add(std::map<std::string, std::string> &columns, string tableName) { initConnection(); mysqlpp::SimpleResult simpleResult; try { @@ -32,17 +32,20 @@ } return simpleResult; } - static bool del(string tableName, std::map<std::string, std::string>& whereColumns) { + + static bool del(string tableName, std::map<std::string, std::string> &whereColumns) { initConnection(); string sql = "DELETE FROM " + tableName + " where 1=1 " + getWhereColumnNameValuePair(whereColumns); mysqlpp::Query query = conn->query(sql); bool ret = query.exec(); if (!ret) { - cout << "error " <<query.error() << endl; + cout << "error " << query.error() << endl; } return ret; } - static bool update(std::map<std::string, std::string>& columns, string tableName, std::map<std::string, std::string>& whereColumns) { + + static bool update(std::map<std::string, std::string> &columns, string tableName, + std::map<std::string, std::string> &whereColumns) { string updateSql = getUpdateSql(columns, tableName, whereColumns); initConnection(); mysqlpp::Query query = conn->query(updateSql); @@ -62,7 +65,7 @@ map<string, string> rowData; mysqlpp::Row row = *it; auto field_list = row.field_list(); - const mysqlpp::FieldNames* fieldNames = field_list.list; + const mysqlpp::FieldNames *fieldNames = field_list.list; for (int i = 0; i < fieldNames->size(); i++) { string columnValue; row[i].to_string(columnValue); @@ -77,15 +80,17 @@ return rowDataList; } - static Json::Value findJsonArray(string sql, std::map<std::string, std::string>& whereColumns) { + static Json::Value findJsonArray(string sql, std::map<std::string, std::string> &whereColumns) { sql = sql + getWhereColumnNameValuePair(whereColumns); initConnection(); +// conn->query("SET character_set_server = utf8;"); mysqlpp::Query query = conn->query(sql); + std::cout << sql << std::endl; Json::Value rowList; if (auto res = query.store()) { for (auto it = res.begin(); it != res.end(); ++it) { Json::Value row; - const mysqlpp::FieldNames* fieldNames = it->field_list().list; + const mysqlpp::FieldNames *fieldNames = it->field_list().list; for (int i = 0; i < fieldNames->size(); i++) { string columnValue; (*it)[i].to_string(columnValue); @@ -93,12 +98,15 @@ columnValue = ""; } string columnName = fieldNames[0].at(i); +// if (columnName == "Nickname") { +// columnValue = columnValue;//.substr(0, 20); +// } row[columnName] = columnValue; } rowList.append(row); } } else { - cout << "error " <<query.error() << endl; + cout << "error " << query.error() << endl; cout << "query failed" << endl; } return rowList; @@ -109,12 +117,13 @@ mysqlpp::Query query = conn->query(sql); bool ret = query.exec(); if (!ret) { - cout << "error " <<query.error() << endl; + cout << "error " << query.error() << endl; } return ret; } - static string getInsertSql(std::map<std::string, std::string>& columns, string tableName) { - string insertSql = "INSERT INTO "+tableName+" (" + + static string getInsertSql(std::map<std::string, std::string> &columns, string tableName) { + string insertSql = "INSERT INTO " + tableName + " (" + getColumnNames(columns) + " ) values ( " + getColumnValues(columns) + @@ -122,17 +131,20 @@ cout << "insertSql " << insertSql << endl; return insertSql; } - static string getUpdateSql(std::map<std::string, std::string>& columns, string tableName, std::map<std::string, std::string>& whereColumns) { - string updateSql = "update "+tableName+" set " + + static string getUpdateSql(std::map<std::string, std::string> &columns, string tableName, + std::map<std::string, std::string> &whereColumns) { + string updateSql = "update " + tableName + " set " + getColumnNameValuePair(columns) + - " where 1=1 "+ - getWhereColumnNameValuePair(whereColumns) - ; + " where 1=1 " + + getWhereColumnNameValuePair(whereColumns); cout << "updateSql " << updateSql << endl; return updateSql; } + static void doConnect() { cout << "db_host=" << appConfig.getStringProperty("db_host").c_str() << endl; + conn->set_option(new mysqlpp::SetCharsetNameOption("utf8")); if (conn->connect( appConfig.getStringProperty("database").c_str(), appConfig.getStringProperty("db_host").c_str(), @@ -148,22 +160,26 @@ // 3306 // )) { cout << "connect success" << endl; + mysqlpp::Query query = conn->query("SET NAMES UTF8-"); } else { cout << "connect failed" << endl; } } + static void initConnection() { static bool inited = false; if (!inited) { inited = true; conn = new mysqlpp::Connection(false); + doConnect(); } if (!conn->connected() || !conn->ping()) { doConnect(); } } - static string getColumnNames(std::map<std::string, std::string>& columns) { + + static string getColumnNames(std::map<std::string, std::string> &columns) { string columnNames; auto size = columns.size(); int i = 0; @@ -176,12 +192,13 @@ } return columnNames; } - static string getColumnValues(std::map<std::string, std::string>& columns) { + + static string getColumnValues(std::map<std::string, std::string> &columns) { string columnValues; auto size = columns.size(); int i = 0; for (auto column : columns) { - columnValues.append("'"+column.second+"'"); + columnValues.append("'" + column.second + "'"); if (i != columns.size() - 1) { columnValues.append(","); } @@ -189,14 +206,15 @@ } return columnValues; } - static string getColumnNameValuePair(std::map<std::string, std::string>& columns) { + + static string getColumnNameValuePair(std::map<std::string, std::string> &columns) { string columnNameValuePair; auto size = columns.size(); int i = 0; for (auto column : columns) { columnNameValuePair.append(column.first); columnNameValuePair.append("="); - columnNameValuePair.append("'"+column.second+"'"); + columnNameValuePair.append("'" + column.second + "'"); if (i != size - 1) { columnNameValuePair.append(","); @@ -205,7 +223,8 @@ } return columnNameValuePair; } - static string getWhereColumnNameValuePair(std::map<std::string, std::string>& columns) { + + static string getWhereColumnNameValuePair(std::map<std::string, std::string> &columns) { string columnNameValuePair; auto size = columns.size(); int i = 0; @@ -213,7 +232,7 @@ columnNameValuePair.append(" and "); columnNameValuePair.append(column.first); columnNameValuePair.append("="); - columnNameValuePair.append("'"+column.second+"' "); + columnNameValuePair.append("'" + column.second + "' "); i++; } -- Gitblit v1.8.0