📅  最后修改于: 2023-12-03 15:36:35.342000             🧑  作者: Mango
在软件开发中,数据库是一个必不可少的环节。C/C++ 语言作为传统高性能语言,也可以用于实现与数据库的连接。本文主要介绍常用的 C/C++ 语言连接 MySQL 和 SQLite 数据库的方法和步骤。
MySQL Connector/C++ 是 MySQL 为 C++ 语言提供的官方 API,可以通过以下链接下载:
https://dev.mysql.com/downloads/connector/cpp/
将下载的库解压后,将解压后的 include 和 lib 目录中的所有文件都复制到系统对应的目录下即可(Windows 系统默认是 C:\Program Files\MySQL\MySQL Connector C++ 8.0)。
使用 MySQL Connector/C++ 库的步骤如下:
#include <mysqlx/xdevapi.h>
mysqlx::Session session("localhost", 3306, "username", "password");
其中 localhost
是 MySQL 数据库所在的地址,3306
是 MySQL 数据库的端口,username
和 password
分别是 MySQL 数据库的用户名和密码。
mysqlx::Schema db = session.getSchema("database_name");
mysqlx::Table table = db.getTable("table_name");
mysqlx::Result results = table.select("*").execute();
for (auto row : results)
{
cout << row[0] << " " << row[1] << endl;
}
其中 database_name
是要访问的数据库名,table_name
是要访问的表名。可以进行的操作包括插入数据(table.insert(...).execute()
)、更新数据(table.update(...).where(...).execute()
)和删除数据(table.remove(...).where(...).execute()
)。
session.close();
SQLite3 是 C/C++ 语言下轻量级的本地关系型数据库,可以通过以下链接下载:
https://www.sqlite.org/download.html
将下载的 SQLite3 库中的 sqlite3.h 和 sqlite3.c 文件复制到项目的 include 和 src 目录下即可。
使用 SQLite3 库的步骤如下:
#include <sqlite3.h>
sqlite3 *db;
if (sqlite3_open("database.db", &db) != SQLITE_OK)
{
cout << "Failed to open database: " << sqlite3_errmsg(db) << endl;
return -1;
}
其中 "database.db"
是要访问的数据库文件名。
sqlite3_stmt *stmt = NULL;
if (sqlite3_prepare_v2(db, "SELECT * FROM table_name;", -1, &stmt, NULL) != SQLITE_OK)
{
cout << "Failed to execute statement: " << sqlite3_errmsg(db) << endl;
return -1;
}
while (sqlite3_step(stmt) == SQLITE_ROW)
{
cout << sqlite3_column_int(stmt, 0) << " " << sqlite3_column_text(stmt, 1) << endl;
}
其中 table_name
是要访问的表名。可以进行的操作包括插入数据(sqlite3_exec(db, "INSERT INTO table_name(...) VALUES(...);", 0, 0, 0)
)、更新数据(sqlite3_exec(db, "UPDATE table_name SET ... WHERE ...;", 0, 0, 0)
)和删除数据(sqlite3_exec(db, "DELETE FROM table_name WHERE ...;", 0, 0, 0)
)。
sqlite3_close(db);
本文介绍了 C/C++ 语言连接 MySQL 和 SQLite 数据库的方法和步骤。其中 MySQL 使用的是官方提供的 MySQL Connector/C++ 库,而 SQLite 使用的是 C/C++ 语言下的 sqlite3.h 和 sqlite3.c 文件。在具体实践中,需要根据项目需要进行选择和配置。