sudo apt install libmysqlcppconn-dev
#include <algorithm> #include <atomic> #include <barrier> #include <bitset> #include <chrono> #include <ctime> #include <fstream> #include <functional> #include <hashtable.h> #include <iomanip> #include <iostream> #include <limits> #include <sstream> #include <thread> #include <uuid/uuid.h> #include <mysql/my_command.h> #include <cppconn/connection.h> #include <mysql/mysql.h> #include <mysql/my_command.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/metadata.h> #include <cppconn/parameter_metadata.h> #include <cppconn/prepared_statement.h> #include <cppconn/resultset.h> #include <cppconn/sqlstring.h> #include <cppconn/statement.h> std::string get_time_now() { auto now = std::chrono::high_resolution_clock::now(); time_t raw_time = std::chrono::high_resolution_clock::to_time_t(now); struct tm tm_info = *localtime(&raw_time); std::stringstream ss; ss << std::put_time(&tm_info, "%Y%m%d%H%M%S"); auto seconds = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()); auto mills = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()); auto micros = std::chrono::duration_cast<std::chrono::microseconds>(now.time_since_epoch()); auto nanos = std::chrono::duration_cast<std::chrono::nanoseconds>(now.time_since_epoch()); ss << "_" << std::setw(3) << std::setfill('0') << (mills.count() - seconds.count() * 1000) << std::setw(3) << std::setfill('0') << (micros.count() - mills.count() * 1000) << std::setw(3) << std::setfill('0') << (nanos.count() - micros.count() * 1000); return ss.str(); } char *uuid_value = (char *)malloc(40); char *get_uuid_value() { uuid_t new_uuid; uuid_generate(new_uuid); uuid_unparse(new_uuid, uuid_value); return uuid_value; } void select_mysql() { sql::Driver *driver; sql::Connection *conn; sql::ResultSet *reset; sql::Statement *stmt; sql::ResultSetMetaData *metaData; driver=get_driver_instance(); conn=driver->connect("127.0.0.1:3306","Fred","password"); conn->setSchema("db"); std::string select_sql="select * from t1 order by id desc limit 100;"; stmt=conn->createStatement(); reset=stmt->executeQuery(select_sql); metaData=reset->getMetaData(); int rows_count=reset->rowsCount(); int columns=metaData->getColumnCount(); int rowIndex=0; while(reset->next()) { for(int j=1;j<columns;j++) { std::cout<<reset->getString(j)<<"\t"; } std::cout<<std::endl; } conn->close(); std::cout<<std::boolalpha<<conn->isClosed()<<std::endl; std::cout<<get_time_now()<<","<<__FUNCTION__<<std::endl; } int main(int args, char **argv) { select_mysql(); std::cout << "Finished in " << __FUNCTION__ << std::endl; }
#include <mysql/my_command.h> #include <cppconn/connection.h> #include <mysql/mysql.h> #include <mysql/my_command.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/metadata.h> #include <cppconn/parameter_metadata.h> #include <cppconn/prepared_statement.h> #include <cppconn/resultset.h> #include <cppconn/sqlstring.h> #include <cppconn/statement.h> void select_mysql() { sql::Driver *driver; sql::Connection *conn; sql::ResultSet *reset; sql::Statement *stmt; sql::ResultSetMetaData *metaData; driver=get_driver_instance(); conn=driver->connect("127.0.0.1:3306","Fred","password"); conn->setSchema("db"); std::string select_sql="select * from t1 order by id desc limit 100;"; stmt=conn->createStatement(); reset=stmt->executeQuery(select_sql); metaData=reset->getMetaData(); int rows_count=reset->rowsCount(); int columns=metaData->getColumnCount(); int rowIndex=0; while(reset->next()) { for(int j=1;j<columns;j++) { std::cout<<reset->getString(j)<<"\t"; } std::cout<<std::endl; } conn->close(); std::cout<<std::boolalpha<<conn->isClosed()<<std::endl; std::cout<<get_time_now()<<","<<__FUNCTION__<<std::endl; }
g++-12 -std=c++23 -I. *.cpp -o h1 -luuid -lmysqlcppconn;