From 5482d7155816c8372c33979aa3c84afefb2ec070 Mon Sep 17 00:00:00 2001 From: marcelb Date: Tue, 22 Aug 2023 19:52:23 +0200 Subject: [PATCH] Formater: select, from, where, update, set. Fix bug in disconnect/close. SQLQA type. Exec/query refactor --- .gitignore | 2 + lib/mysql.hpp | 43 +++++++++++-- src/mysql.cpp | 165 +++++++++++++++++++++++++++----------------------- test/test.cpp | 32 +++++++--- test/test.o | Bin 93128 -> 103104 bytes 5 files changed, 150 insertions(+), 92 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..394cbad --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +example +test/test.o \ No newline at end of file diff --git a/lib/mysql.hpp b/lib/mysql.hpp index 762007d..1ca1392 100644 --- a/lib/mysql.hpp +++ b/lib/mysql.hpp @@ -2,6 +2,7 @@ #define _MYSQL_ #include +#include #include #include #include @@ -21,6 +22,40 @@ using namespace std; using namespace sql; using namespace mysql; +class sqlQA { + public: + // query + string cmd; + string table; + vector columns; + bool isUpdate = false; + bool isSelect = false; + + // answer + uint updateCatch = 0; + bool executed = false; + map> result; + uint num_rows = 0; + uint num_columns = 0; + + // query methods + sqlQA& select(const string _select = "*"); + sqlQA& from(const string _tablename); + sqlQA& where(const string _condition); + // sqlQA& limit(); + // sqlQA& insertInTo(string _tablename, string _columns); + // sqlQA& values(); // proizvoljan broj argumenata + sqlQA& update(const string _tablename); + sqlQA& set(const string _column_value_pairs); + // sqlQA& deleteFrom(); + + // answer methods + + + private: + void parse_columns(const string _cloumns); +}; + class mySQL { public: mutex io; @@ -32,12 +67,10 @@ class mySQL { mySQL(const string _path, const string _username, const string _password, const string _db, bool _isPersistent = false); bool open(const string _db = ""); bool connect(); - bool close(); - map> query(const string sql_command); - bool change(const string sql_command); - string getTable(const string req); + bool disconnect(); + void exec(sqlQA &sql_qa); + void getColumns(const string _table, vector &_columns); ~mySQL(); - }; diff --git a/src/mysql.cpp b/src/mysql.cpp index 59cc5f6..0dc1d93 100644 --- a/src/mysql.cpp +++ b/src/mysql.cpp @@ -1,5 +1,51 @@ #include "../lib/mysql.hpp" +sqlQA& sqlQA::select(const string _columns) { + if (_columns != "*") { + parse_columns(_columns); + } + isSelect = true; + cmd += "SELECT " + _columns + " "; + return *this; +} + +sqlQA& sqlQA::from(const string _table) { + table = _table; + cmd += "FROM " + _table + " "; + return *this; +} + +sqlQA& sqlQA::where(const string _condition) { + cmd += "WHERE " + _condition + " "; + return *this; +} + +sqlQA& sqlQA::update(const string _table) { + isUpdate = true; + cmd += "UPDATE " + _table + " "; + return *this; +} + +sqlQA& sqlQA::set(const string _column_value_pairs) { + cmd += "SET " + _column_value_pairs + " "; + return *this; +} + + +void sqlQA::parse_columns(const string _columns) { + istringstream iss(_columns); + string columnName; + + while (getline(iss, columnName, ',')) { + size_t startPos = columnName.find_first_not_of(" "); + size_t endPos = columnName.find_last_not_of(" "); + + if (startPos != string::npos && endPos != string::npos) { + columns.push_back(columnName.substr(startPos, endPos - startPos + 1)); + } + } +} + mySQL::mySQL(const string _path, const string _username, const string _password, const string _db, bool _isPersistent) { path = _path; username = _username; @@ -60,7 +106,7 @@ bool mySQL::connect() { return status; } -bool mySQL::close() { +bool mySQL::disconnect() { io.lock(); bool status = true; @@ -72,14 +118,19 @@ bool mySQL::close() { } catch (const SQLException &error) { cout << error.what() << endl; + status = true; io.unlock(); } } + else { + status = false; + } + return status; } -map> mySQL::query(const string sql_command) { +void mySQL::exec(sqlQA &sql_qa) { if (!isPersistent || !con->isValid() || con->isClosed()) { if (connect()) { @@ -93,87 +144,47 @@ map> mySQL::query(const string sql_command) { io.lock(); /**/ - map> maped; - try { - Statement *stmt; - stmt = con->createStatement(); + vector columns = sql_qa.columns; - const string table = getTable(sql_command); - if (table.empty()) { - throw string ("[ERROR] SQL command not have table "); - } - - ResultSet *columnsRes = stmt->executeQuery("SHOW COLUMNS from " + table); - vector tableFields; - - while (columnsRes->next()) { - tableFields.push_back(columnsRes->getString("Field")); + if (columns.empty() && !sql_qa.table.empty()) { + getColumns(sql_qa.table, columns); } - delete columnsRes; - - ResultSet *res = stmt->executeQuery(sql_command); + Statement *stmt; + stmt = con->createStatement(); - while (res->next()) { - for (uint i=0; igetString(tableFields[i])); + if (sql_qa.isSelect) { + ResultSet *res = stmt->executeQuery(sql_qa.cmd); + sql_qa.executed = true; + uint num_raw_columns = 0; + while (res->next()) { + for (uint i=0; igetString(columns[i])); + num_raw_columns++; + } } - } - delete res; - delete stmt; - - io.unlock(); - } - catch (const SQLException &error) { - cout << error.what() << endl; - io.unlock(); - } - catch (const string error) { - throw error; - io.unlock(); - } - - /**/ - - if (!isPersistent) { - if(close()) { - throw string("[ERROR] Unable to close database "); + delete res; + sql_qa.num_columns = columns.size(); + sql_qa.num_rows = num_raw_columns/columns.size(); } - } - return maped; -} - -bool mySQL::change(const string sql_command) { - - if (!isPersistent || !con->isValid() || con->isClosed()) { - if (connect()) { - throw string("[ERROR] Unable to connect database "); + if (sql_qa.isUpdate) { + sql_qa.updateCatch = stmt->executeUpdate(sql_qa.cmd); + sql_qa.executed = true; } - if (open()) { - throw string("[ERROR] Unable to open database " + db); + else { + sql_qa.executed = stmt->execute(sql_qa.cmd); } - } - - io.lock(); - /**/ - bool status = false; - - try { - Statement *stmt; - stmt = con->createStatement(); - - uint changeCatch = stmt->executeUpdate(sql_command); - status = (bool)changeCatch; delete stmt; io.unlock(); } catch (const SQLException &error) { cout << error.what() << endl; + sql_qa.executed = false; io.unlock(); } catch (const string error) { @@ -184,29 +195,29 @@ bool mySQL::change(const string sql_command) { /**/ if (!isPersistent) { - if(close()) { + if(disconnect()) { throw string("[ERROR] Unable to close database "); } } - return status; } +void mySQL::getColumns(const string _table, vector &_columns) { + Statement *stmt; + stmt = con->createStatement(); + + ResultSet *columnsRes = stmt->executeQuery("SHOW COLUMNS from " + _table); -string mySQL::getTable(const string req) { - size_t from = req.find("FROM") < req.find("from") ? req.find("FROM") : req.find("from"); - size_t ends = req.find(" ", from+5) < req.length() ? req.find(" ", from+5) : req.length(); - if (from > req.length()) { - return ""; + while (columnsRes->next()) { + _columns.push_back(columnsRes->getString("Field")); } - string table = req.substr(from+5, ends-from-5); - return table; -} - + delete columnsRes; + delete stmt; +} mySQL::~mySQL() { - if(close()) { + if(disconnect()) { throw string("[ERROR] Unable to close database "); } } diff --git a/test/test.cpp b/test/test.cpp index f80a0be..435ca05 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -10,24 +10,36 @@ int main() { try { - auto res = mydb.query("SELECT * FROM records WHERE enabled = 1;"); + sqlQA test_qa; + // id,user_id,zone_id,domain,record_type,auth_key,last_update,enabled + // test_qa.select().from("records").where("enabled = 1"); + // mydb.exec(test_qa); + + // for (auto i : test_qa.result) { + // for (auto j: i.second) { + // cout << i.first << " : " << j << endl; + // } + // } + - for (auto i : res) { - for (auto j: i.second) { - cout << i.first << " : " << j << endl; - } + test_qa.update("records").set("enabled = 1").where("domain = 'bitelex.test'"); + mydb.exec(test_qa); + if (test_qa.executed) { + cout << "Num rows affect " << test_qa.updateCatch << endl; } - // if (mydb.change("UPDATE records SET enabled = 0 WHERE domain = 'bitelex.ml'")) { - // cout << "Update sucessfuly" << endl; - // } + cout << "Num rows " << test_qa.num_rows << " num columns " << test_qa.num_columns << " executed " << test_qa.executed << endl; + } catch (const SQLException error) { cout << error.what() << endl; } - catch (const string error) { - cout << error << endl; + // catch (const string error) { + // cout << error << endl; + // } + catch (...) { + cout << "Jebi ga" << endl; } diff --git a/test/test.o b/test/test.o index 4b2c9c01228c91316b5ca535830d96760c45fb40..b7575eb74bcbba7f3cf281a75914148ea8f91e18 100755 GIT binary patch literal 103104 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 kww-hG|Cgv^;&