📜  使用C C++的数据库连接(1)

📅  最后修改于: 2023-12-03 15:36:35.342000             🧑  作者: Mango

使用 C/C++ 的数据库连接

简介

在软件开发中,数据库是一个必不可少的环节。C/C++ 语言作为传统高性能语言,也可以用于实现与数据库的连接。本文主要介绍常用的 C/C++ 语言连接 MySQL 和 SQLite 数据库的方法和步骤。

连接 MySQL 数据库
安装 MySQL Connector/C++ 库

MySQL Connector/C++ 是 MySQL 为 C++ 语言提供的官方 API,可以通过以下链接下载:

https://dev.mysql.com/downloads/connector/cpp/
配置 MySQL Connector/C++ 库

将下载的库解压后,将解压后的 include 和 lib 目录中的所有文件都复制到系统对应的目录下即可(Windows 系统默认是 C:\Program Files\MySQL\MySQL Connector C++ 8.0)。

编写连接代码

使用 MySQL Connector/C++ 库的步骤如下:

1. 引入头文件

#include <mysqlx/xdevapi.h>

2. 建立连接

mysqlx::Session session("localhost", 3306, "username", "password");

其中 localhost 是 MySQL 数据库所在的地址,3306 是 MySQL 数据库的端口,usernamepassword 分别是 MySQL 数据库的用户名和密码。

3. 进行操作

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())。

4. 关闭连接

session.close();
连接 SQLite 数据库
安装 SQLite3 库

SQLite3 是 C/C++ 语言下轻量级的本地关系型数据库,可以通过以下链接下载:

https://www.sqlite.org/download.html
配置 SQLite3 库

将下载的 SQLite3 库中的 sqlite3.h 和 sqlite3.c 文件复制到项目的 include 和 src 目录下即可。

编写连接代码

使用 SQLite3 库的步骤如下:

1. 引入头文件

#include <sqlite3.h>

2. 建立连接

sqlite3 *db;
if (sqlite3_open("database.db", &db) != SQLITE_OK)
{
    cout << "Failed to open database: " << sqlite3_errmsg(db) << endl;
    return -1;
}

其中 "database.db" 是要访问的数据库文件名。

3. 进行操作

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))。

4. 关闭连接

sqlite3_close(db);
总结

本文介绍了 C/C++ 语言连接 MySQL 和 SQLite 数据库的方法和步骤。其中 MySQL 使用的是官方提供的 MySQL Connector/C++ 库,而 SQLite 使用的是 C/C++ 语言下的 sqlite3.h 和 sqlite3.c 文件。在具体实践中,需要根据项目需要进行选择和配置。