#pragma once #include #include #include #include #include #include #include class Database { public: Database(const std::string &conninfo); typedef std::unordered_map FieldMap; typedef std::vector FieldList; std::vector> query(const std::string &sql); void prepare(const std::string &stmtName, const std::string &sql); FieldList execute( const std::string &stmtName, const std::vector ¶ms = {} ); void remove(const std::string &stmtName); bool isOpen() const { return connection_ && connection_->is_open(); } bool isValid() const; private: std::unique_ptr connection_; };