首先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();关闭数据库