|
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("tb.db");
- db.open();
- QSqlQuery query(db);
- query.exec("CREATE TABLE student (value BLOB)");
- //准备数据
- QMap<QString,int> map;
- map["one"] = 1;
- map["two"] = 2;
- map["three"] = 3;
- //序列化数据
- QByteArray buffMap;
- QDataStream in(&buffMap,QIODevice::WriteOnly);
- in.setVersion(QDataStream::Qt_5_2);
- in << map;
- //插入记录
- query.prepare("INSERT INTO student VALUES (:value)");
- query.bindValue(":value",buffMap);
- query.exec();
- //开始查询
- query.exec("SELECT value FROM student");
- while (query.next()) {
- //获取当前记录
- QByteArray buffRec = query.record().value("value").toByteArray();
- //反序列化数据
- QDataStream out(&buffRec,QIODevice::ReadOnly);
- in.setVersion(QDataStream::Qt_5_2);
- QMap<QString,int> mapValue;
- out >> mapValue;
- qDebug("map size: %d", mapValue.size());
- }
复制代码 类似这样吧,不知道为啥不能直接插入QMap |
|