首先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

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐