linux cpp g++ mysqlconnector

1.install mysql in ubuntu;

2install mysqlconnector;

1
sudo apt install libmysqlclient-dev

3.complete code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <algorithm>
#include <chrono>
#include <cstdio>
#include <cstdint>
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <random>
#include <sstream>
#include <thread>
#include <vector>
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <mysql_error.h>
// #include <cppconn/driver.h>
// #include <cppconn/connection.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/resultset_metadata.h>
// #include <cppconn/sqlstring.h>
 
std::string get_time_now()
{
    std::chrono::time_point<std::chrono::high_resolution_clock> 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");
    return ss.str();
}
 
void connect_mysql()
{
    try
    {
        sql::Driver *driver;
        sql::Connection *conn;
        sql::Statement *stmt;
        sql::ResultSet *res;
 
        driver = sql::mysql::get_driver_instance();
        conn = driver->connect("tcp://127.0.0.1:3306", "root", "password!");
        conn->setSchema("mysql");
        stmt = conn->createStatement();
        res = stmt->executeQuery("select * from db;");
        sql::ResultSetMetaData *rsmd = res->getMetaData();
        int column_count = rsmd->getColumnCount();
        std::cout << "Number of rows : " << res->rowsCount() << std::endl;
        std::cout << "Number of columns : " << column_count << std::endl;
 
        while (res->next())
        {
            for (int i = 1; i < column_count; i++)
            {
                std::cout << res->getString(i) << ",";
            }
            std::cout << res->getString(column_count) << std::endl;
        }
        delete res;
        delete stmt;
        delete conn;
    }
    catch (sql::SQLException &e)
    {
        std::cout << "# ERR: SQLException in " << __FILE__ << "(" << __FUNCTION__ << ") on line " << __LINE__ << std::endl;
        std::cout << "# ERR: " << e.what() << " (MySQL error code: " << e.getErrorCode() << ", SQLState: " << e.getSQLState() << " )" << std::endl;
    }
}
 
int main(int args, char **argv)
{
    connect_mysql();
    std::cout << get_time_now() << ",finished in " << __FUNCTION__ << std::endl;
}

 

Compile

1
g++-12 -std=c++2a -I. *.cpp -o h1 -lmysqlcppconn

 

Run

1
./h1;

  

 

  

posted @   FredGrit  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2020-07-21 WPF button change content size
点击右上角即可分享
微信分享提示