帮我用qt写一个sqlite加密的例子
时间: 2023-04-08 22:04:14 浏览: 114
好的,我可以回答这个问题。您可以使用Qt提供的QSqlDatabase类来连接SQLite数据库,并使用QSqlQuery类执行SQL语句。要加密SQLite数据库,您可以使用SQLCipher库。您需要将SQLCipher库添加到您的项目中,并使用QSqlDatabase::setPassword()函数设置密码。以下是一个示例代码:
```
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Connect to SQLite database
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
// Set password for encrypted database
db.setPassword("mypassword");
// Open database
if (!db.open()) {
qDebug() << "Failed to open database";
return 1;
}
// Create table
QSqlQuery query;
query.exec("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)");
// Insert data
query.prepare("INSERT INTO mytable (name) VALUES (:name)");
query.bindValue(":name", "John");
query.exec();
// Select data
query.exec("SELECT * FROM mytable");
while (query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
qDebug() << "id:" << id << "name:" << name;
}
// Close database
db.close();
return 0;
}
```
请注意,您需要在项目中包含SQLCipher库的头文件和库文件,并将其添加到项目的.pro文件中。
阅读全文