首先QT本身自己就支持SQLITE数据库,但还是没有对数据库加密的功能,所以我们需要使用插件去实现该功能:

  sqlitecipher:这个插件库可以在github上面找到,找到之后自己编辑需要的版本就行了;

编译出来的dll文件需要放在:程序生成目录xxx-debug\sqldrivers\文件夹下面

创建加密数据库:

QString sPath = QApplication::applicationDirPath()+"/"+account+".db";
    m_database = QSqlDatabase::addDatabase("SQLITECIPHER");
    m_database.setConnectOptions("QSQLITE_CREATE_KEY");
    m_database.setUserName(account);
    m_database.setPassword(password);
    m_database.setDatabaseName(sPath);

读取加密数据库:

QString sPath = QApplication::applicationDirPath()+"/"+account+".db";
    m_database = QSqlDatabase::addDatabase("SQLITECIPHER");
    m_database.setUserName(account);
    m_database.setPassword(password);
    m_database.setDatabaseName(sPath);

最后需要调用 

QSqlDatabase::open();

调用之后,就可以在本地创建出数据库;

数据库使用完毕之后,调用

QSqlDatabase::close();关闭数据库

Logo

一站式 AI 云服务平台

更多推荐