使用数据库
应用开发中经常使用数据库保存一些信息,比如用户的通话记录、操作历史等。在客户端这种需求一般都使用基于文件的嵌入式数据库来实现,其中最常用的就是SQLite,而像MySQL、Oracle等数据库服务器,一般客户端不会直接操作,而是采用C/S架构,把一部分逻辑放到服务端程序。这篇笔记介绍如何在Qt中使用SQLite数据库。
使用数据库模块
首先我们需要在Qt工程的CMakeLists.txt文件中添加链接Sql库相关的配置。
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Sql)
target_link_libraries(hello PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
我们可以编写以下代码,查看当前可用的数据库驱动。
QStringList drivers = QSqlDatabase::drivers();
for (QString &driver: drivers)
{
qDebug() << driver;
}
输出例子如下(我这里使用的是Windows11操作系统)。
"QSQLITE"
"QMIMER"
"QODBC"
"QPSQL"
执行SQL语句
下面代码中,我们分别执行了建表语句,插入语句,以及查询语句。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("demo.db");
if(!db.open())
{
return false;
}
QSqlQuery query;
query.exec("create table t_user(user_id int primary key, username varchar(255), password varchar(255))");
query.exec("insert into t_user values(1, 'tom', '123456')");
query.exec("insert into t_user values(2, 'jerry', '123abc')");
query.exec("insert into t_user values(3, 'lucy', '666666')");
query.exec("select * from t_user");
while(query.next())
{
int v1 = query.value(0).toInt();
QString v2 = query.value(1).toString();
QString v3 = query.value(2).toString();
qDebug() << v1 << v2 << v3;
}
上面代码中,如果数据库文件demo.db不存在,会自动创建,创建位置就是程序运行的目录。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。