C++ mysql print all rows all columns data in Ubuntu
2022/7/4 2:23:50
本文主要是介绍C++ mysql print all rows all columns data in Ubuntu,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.Install mysql connector
sudo apt-get install libmysqlcppconn-dev
2.Program
//Util.h #ifndef Util_H #define Util_H #include <chrono> #include <ctime> #include <fstream> #include <functional> #include <future> #include <iostream> #include <random> #include <sstream> #include <thread> #include <unistd.h> #include <uuid/uuid.h> #include <vector> #include "mysql_connection.h" #include <cppconn/driver.h> #include <cppconn/resultset.h> #include <cppconn/exception.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> using namespace std; class Util { public: void connectToMySQL(); }; #endif //Util.cpp void Util::connectToMySQL() { try { sql::Driver *dvr; sql::Connection *conn; sql::Statement *stmt; sql::ResultSet *res; sql::ResultSetMetaData *resMeta; dvr=get_driver_instance(); conn=dvr->connect("tcp://127.0.0.1:3306","root","password"); conn->setSchema("mysql"); stmt=conn->createStatement(); res=stmt->executeQuery("select * from user;"); resMeta=res->getMetaData(); int columnsCoumt=resMeta->getColumnCount(); cout<<"ColumnsCount="<<columnsCoumt<<endl; while(res->next()) { for(int i=1;i<=columnsCoumt;i++) { cout<<res->getString(i)<<"\t"; } cout<<endl; } delete res; delete stmt; delete conn; } catch(sql::SQLException &e) { std::cerr << e.what() << '\n'; cout<<"FILE:"<<__FILE__<<",FUNCTION:"<<__FUNCTION__<<",LINE:"<<__LINE__<<endl; cout<<"Code:"<<e.getErrorCode()<<endl; cout<<"State:"<<e.getSQLState()<<endl; } }
3.Call the method in main method
//main.cpp #include "Model/Util.h" void mysqlConnector27(); int main(int args, char **argv) { mysqlConnector27(); } void mysqlConnector27() { Util ul; ul.connectToMySQL(); }
4.Compile via g++
g++ -std=c++2a -I. *.cpp ./Model/*.cpp -o h1 -luuid -lpthread -lmysqlcppconn
5.Run the compiled result
./h1
When traverse the ResultSet getting by statement exeuctequery("select * from user") method
Pay more attention to the method of get columns count via
sql::ResultSetMetaData *resMeta; resMeta=res->getMetaData(); int columnsCoumt=resMeta->getColumnCount(); cout<<"ColumnsCount="<<columnsCoumt<<endl;
And be cautious that the column index in resultset started from 1 instead of 0,so when loop the columns,the initial column index is 1 instead of 0;
cout<<"ColumnsCount="<<columnsCoumt<<endl; while(res->next()) { //The column index begins with 1 not 0 for(int i=1;i<=columnsCoumt;i++) { cout<<res->getString(i)<<"\t"; } cout<<endl; }
这篇关于C++ mysql print all rows all columns data in Ubuntu的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?