您现在的位置是:首页 >技术教程 >[开发|C++] C++数据库框架网站首页技术教程
[开发|C++] C++数据库框架
简介[开发|C++] C++数据库框架
- Qt SQL:Qt是一个跨平台的应用程序框架,其中包括一个SQL模块,提供了对多种数据库的访问支持。Qt SQL提供了一个简单的ORM框架,可以将C++对象映射到关系型数据库表中。Qt SQL可以与MySQL、PostgreSQL、SQLite和Oracle等多种数据库一起使用。
以下是一个简单的 Qt SQL 使用示例:
#include <QtSql>
#include <QDebug>
int main()
{
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test_db");
db.setUserName("root");
db.setPassword("password");
if (!db.open()) {
qDebug() << "Failed to connect to database!";
return 1;
}
// 执行 SQL 查询
QSqlQuery query(db);
query.exec("SELECT * FROM users");
while (query.next()) {
int id = query.value("id").toInt();
QString name = query.value("name").toString();
qDebug() << "id:" << id << "name:" << name;
}
// 插入一条数据
QSqlQuery insert_query(db);
insert_query.prepare("INSERT INTO users (name, age) VALUES (?, ?)");
insert_query.bindValue(0, "Alice");
insert_query.bindValue(1, 18);
if (!insert_query.exec()) {
qDebug() << "Failed to insert data!";
return 1;
}
db.close();
return 0;
}
这个示例演示了如何连接到一个名为 test_db
的 MySQL 数据库,执行一个查询以及插入一条数据。你需要根据自己的实际情况更改数据库的连接信息和 SQL 语句。
- SOCI:SOCI是一个轻量级的ORM框架,支持多种数据库,包括MySQL、Oracle、PostgreSQL和SQLite等。SOCI具有高度可定制性,可以通过自定义类型映射和查询操作来满足特定的需求。
官网地址
仓库地址
以下是使用 SOCI 的简单示例:
#include <iostream>
#include <soci/soci.h>
#include <soci/sqlite3/soci-sqlite3.h>
int main() {
try {
// Connect to the database
soci::session sql(soci::sqlite3, "test.db");
// Create a table
sql << "create table if not exists people ("
<< "id integer primary key autoincrement, "
<< "name varchar(255), "
<< "age integer"
<< ")";
// Insert a record
sql << "insert into people (name, age) values ('John', 30)";
// Query the database
soci::rowset<soci::row> rows = (sql.prepare << "select name, age from people");
for (soci::rowset<soci::row>::const_iterator it = rows.begin(); it != rows.end(); ++it) {
std::string name;
int age;
soci::tie(name, age) = *it;
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
} catch (std::exception const &e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
这个示例展示了如何连接到 SQLite3 数据库、创建一个表、插入一条记录和查询记录。在 SOCI 中,可以使用 session
对象来表示数据库会话,它的构造函数接受两个参数:数据库类型和连接字符串。在这个示例中,我们使用 soci::sqlite3
作为数据库类型,并指定数据库文件名为 test.db
。
使用 SOCI 操作数据库需要使用 SQL 语句,这些语句可以直接使用字符串拼接的方式构建,也可以使用 SOCI 提供的查询构建器。在这个示例中,我们使用字符串拼接的方式创建表和插入记录,使用查询构建器查询记录。在 SOCI 中,查询构建器使用 prepare
方法创建,然后可以使用 bind
方法绑定参数,最后使用 execute
方法执行查询。执行查询之后,可以使用 rowset
对象迭代查询结果。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。