#ifdef _MSC_VER #pragma execution_character_set("utf-8") // Qt VS 中文兼容(UTF-8) #endif #include "IrisDataDao.h" IrisDataDao::IrisDataDao(QObject *parent) : BaseDao(parent) { } QVector<QVariantMap> IrisDataDao::findAllRecord() { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT * FROM IRIS_DATA"; query.prepare(sql); // 执行查询 query.exec(); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("id", query.value("id").toString()); item.insert("person_id", query.value("person_id").toString()); item.insert("id_card_no", query.value("id_card_no").toString()); item.insert("left_iris_code1", query.value("left_iris_code1")); item.insert("left_iris_code2", query.value("left_iris_code2")); item.insert("left_iris_code3", query.value("left_iris_code3")); item.insert("right_iris_code1", query.value("right_iris_code1")); item.insert("right_iris_code2", query.value("right_iris_code2")); item.insert("right_iris_code3", query.value("right_iris_code3")); result.append(item); } // LOG_DEBUG(QString("查询IRIS_DATA表的所有记录[结果数:%1]").arg(result.size()).toStdString()); return result; } QVariantMap IrisDataDao::findRecordById(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT * FROM IRIS_DATA WHERE ID = :id"); query.prepare(sql); query.bindValue(":id", id); // 执行查询 query.exec(); // 返回结果 QVariantMap result; // 获取结果 if (query.next()) { result.insert("id", query.value("id").toString()); result.insert("person_id", query.value("person_id").toLongLong()); result.insert("id_card_no", query.value("id_card_no").toString()); result.insert("left_iris_code1", query.value("left_iris_code1")); result.insert("left_iris_code2", query.value("left_iris_code2")); result.insert("left_iris_code3", query.value("left_iris_code3")); result.insert("right_iris_code1", query.value("right_iris_code1")); result.insert("right_iris_code2", query.value("right_iris_code2")); result.insert("right_iris_code3", query.value("right_iris_code3")); } // LOG_DEBUG(QString("根据id查询IRIS_DATA表的记录[id=%1]").arg(id).toStdString()); return result; } QVariantMap IrisDataDao::findRecordByPersonId(QString personId) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT * FROM IRIS_DATA WHERE PERSON_ID = :personId"); query.prepare(sql); query.bindValue(":personId", personId); // 执行查询 query.exec(); // 返回结果 QVariantMap result; if (query.next()) { result.insert("id", query.value("id").toString()); result.insert("person_id", query.value("person_id").toLongLong()); result.insert("id_card_no", query.value("id_card_no").toString()); result.insert("left_iris_code1", query.value("left_iris_code1")); result.insert("left_iris_code2", query.value("left_iris_code2")); result.insert("left_iris_code3", query.value("left_iris_code3")); result.insert("right_iris_code1", query.value("right_iris_code1")); result.insert("right_iris_code2", query.value("right_iris_code2")); result.insert("right_iris_code3", query.value("right_iris_code3")); } // LOG_TRACE(QString("根据personId查询IRIS_DATA表的记录[personId=%1]").arg(personId).toStdString()); return result; } QString IrisDataDao::findIrisIdByPersonId(QString personId) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT ID FROM IRIS_DATA WHERE PERSON_ID = :personId"); query.prepare(sql); query.bindValue(":personId", personId); // 执行查询 query.exec(); // 返回结果 QString existedId; // 遍历查询结果 if (query.next()) { existedId = query.value("id").toString(); } return existedId; } QString IrisDataDao::save(QVariantMap object) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); qulonglong id; if (object.contains("id") == true) { id = object.value("id").toULongLong(); } else { id = ConnectionManager::getInstance()->generateId(); } // INSERT语句 QString sql = QString("INSERT INTO IRIS_DATA (ID, PERSON_ID, ID_CARD_NO, LEFT_IRIS_CODE1, RIGHT_IRIS_CODE1) VALUES (:id, :personId, :idCardNo, :left1, :right1)"); query.prepare(sql); query.bindValue(":id", id); query.bindValue(":personId", object.value("person_id").toString()); query.bindValue(":idCardNo", object.value("id_card_no").toString()); query.bindValue(":left1", object.value("left_iris_code1")); query.bindValue(":right1", object.value("right_iris_code1")); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行插入 bool success = query.exec(); // LOG_DEBUG(QString("保存虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString()); qDebug() << QString("保存虹膜特征值[%1][id=%2]").arg(success).arg(id); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 if (success == true) { return QString("%1").arg(id); } else { return "-1"; } } bool IrisDataDao::edit(QVariantMap newObject, QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // UPDATE语句 if (!newObject.contains("left_iris_code1") || !newObject.contains("right_iris_code1")){ return false; } QString sql = QString("UPDATE IRIS_DATA SET LEFT_IRIS_CODE1 = :left1, RIGHT_IRIS_CODE1 = :right1 WHERE ID = :id"); query.prepare(sql); query.bindValue(":id", id); query.bindValue(":left1", newObject.value("left_iris_code1")); query.bindValue(":right1", newObject.value("right_iris_code1")); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行更新 bool success = query.exec(); // LOG_DEBUG(QString("编辑虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString()); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 return success; } bool IrisDataDao::dele(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); QString sql = QString("DELETE FROM IRIS_DATA WHERE ID = :id"); query.prepare(sql); query.bindValue(":id", id); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行更新 bool success = query.exec(); // LOG_DEBUG(QString("删除虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString()); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 return success; }