这是一篇关于讲解"Qt以Json(JsonArray)格式向数据库添加图片数据(十六进制)及回显"的解决方案。
原因
在进行编程时,想将本地图片资源以Json格式保存到数据库,这样在不同的终端,都可以使用该数据库读取图片。
实现之前,先上网查下是否有可用示例,经过查阅,发现只有单个图片的序列化存储。而无以JsonArray进行存储的示例。既然没有,那就只有自己实现了。
说做就做,先将需求分解:
- 数据库表设计
- 数据的存储
- 数据的读取
实现
1. 数据库表设计
既然用于测试,那就随机创建个3列的表吧,关于对图片资源的字段类型,可以设置为TEXT。
QSqlDatabase m_db = QSqlDatabase::addDatabase("QSQLITE", "pngJsonArrayTest");
if (!m_db.driver()->hasFeature(QSqlDriver::Transactions)) {
qDebug() << "Database does not support transactions.";
// handle lack of transaction support
}
m_db.setDatabaseName("./pngJsonArrayTest.db");
m_db.open();
QSqlQuery query(m_db);
QString strQuery = QString("create table '%1' ('%2' TEXT,'%3' TEXT,'%4' TEXT)").arg("goodLucky", "f1", "f2", "pngJsonInfo");
query.exe