可以的。Ubuntu 下用 C++ 连接数据库是完全支持的,具体方式取决于你用的是哪种数据库。下面给你一个常见总结和示例。
常用库:
libmysqlclient(官方 C API)MySQL Connector/C++(面向对象)安装:
sudo apt update
sudo apt install libmysqlclient-dev
简单示例(C API):
#include <mysql/mysql.h>
#include <iostream>
int main() {
MYSQL* conn = mysql_init(nullptr);
if (!mysql_real_connect(conn, "localhost", "user", "password",
"dbname", 0, nullptr, 0)) {
std::cerr << mysql_error(conn) << std::endl;
return 1;
}
std::cout << "Connected to MySQL!" << std::endl;
mysql_close(conn);
}
编译:
g++ test.cpp -o test -lmysqlclient
常用库:
libpqxx(C++ 封装)libpq(C API)安装:
sudo apt install libpqxx-dev
示例:
#include <pqxx/pqxx>
#include <iostream>
int main() {
pqxx::connection conn("dbname=test user=postgres password=123456");
std::cout << "Connected to PostgreSQL!" << std::endl;
}
编译:
g++ test.cpp -o test -lpqxx -lpq
特点:
安装:
sudo apt install libsqlite3-dev
示例:
#include <sqlite3.h>
#include <iostream>
int main() {
sqlite3* db;
if (sqlite3_open("test.db", &db) != SQLITE_OK) {
std::cerr << "Cannot open DB" << std::endl;
return 1;
}
std::cout << "SQLite OK" << std::endl;
sqlite3_close(db);
}
如果你的程序要支持多种数据库,可以用:
unixODBCODBC + C++适合企业级应用。
| 场景 | 推荐 |
|---|---|
| Web 后端 | MySQL / PostgreSQL |
| 本地程序 | SQLite |
| 多数据库兼容 | ODBC |
| 现代 C++ | Connector/C++ / pqxx |
你用的是 哪种数据库?