#include "IrisDataImgDao.h" IrisDataImgDao::IrisDataImgDao(QObject *parent) : BaseDao(parent) { } QVector<QVariantMap> IrisDataImgDao::findAllRecord() { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT * FROM IRIS_DATA_IMAGE"; // 执行查询 query.exec(sql); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("id", query.value("id").toString()); result.append(item); } LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } QVariantMap IrisDataImgDao::findRecordById(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT * FROM IRIS_DATA_IMAGE WHERE ID = %1").arg(id); // 执行查询 query.exec(sql); // 返回结果 QVariantMap result; // 获取结果集的大小 query.last(); int count = query.at() + 1; if (count >=1) { query.first(); result.insert("id", query.value("id").toString()); result.insert("person_id", query.value("person_id").toString()); result.insert("left_image1", query.value("left_image1").toString()); result.insert("left_image2", query.value("left_image2").toString()); result.insert("left_image3", query.value("left_image3").toString()); result.insert("right_image1", query.value("right_image1").toString()); result.insert("right_image2", query.value("right_image2").toString()); result.insert("right_image3", query.value("right_image3").toString()); } LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } QVariantMap IrisDataImgDao::findRecordByPersonId(QString personId) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT * FROM IRIS_DATA_IMAGE WHERE PERSON_ID = '%1'").arg(personId); // 执行查询 query.exec(sql); // 返回结果 QVariantMap result; // 获取结果集的大小 query.last(); int count = query.at() + 1; if (count >=1) { query.first(); result.insert("id", query.value("id").toString()); result.insert("person_id", query.value("person_id").toString()); result.insert("left_image1", query.value("left_image1").toString()); result.insert("right_image1", query.value("right_image1").toString()); } LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId:%1][%2]").arg(personId).arg(sql).toStdString(); return result; } QVector<QVariantMap> IrisDataImgDao::findRecordsByProperty(QString properName, QVariant properValue) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT * FROM IRIS_DATA_IMAGE WHERE %1 = '%2'"; sql = sql.arg(properName).arg(properValue.toString()); // 执行查询 query.exec(sql); // 获取结果集的大小 int count = 0; // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; count++; item.insert("id", query.value("id").toString()); item.insert("person_id", query.value("person_id").toString()); item.insert("left_image1", query.value("left_image1").toString()); item.insert("left_image2", query.value("left_image2").toString()); item.insert("left_image3", query.value("left_image3").toString()); item.insert("right_image1", query.value("right_image1").toString()); item.insert("right_image2", query.value("right_image2").toString()); item.insert("right_image3", query.value("right_image3").toString()); result.append(item); } LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } QString IrisDataImgDao::save(QVariantMap object) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); qulonglong id = ConnectionManager::getInstance()->generateId(); // INSERT语句 QString sql = QString("INSERT INTO IRIS_DATA_IMAGE " "(ID, PERSON_ID, LEFT_IMAGE1, RIGHT_IMAGE1) " "VALUES ('%1', '%2', :leftImage1, :rightImage1)") .arg(id).arg(object.value("person_id").toString()); query.prepare(sql); query.bindValue(":leftImage1", object.value("left_image1")); query.bindValue(":rightImage1", object.value("right_image1")); LOG(DEBUG) << sql.toStdString(); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行插入 bool success = query.exec(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 if (success == true) { return QString("%1").arg(id); } else { return "-1"; } } bool IrisDataImgDao::edit(QVariantMap newObject, QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // UPDATE语句 QString sql = QString("UPDATE IRIS_DATA_IMAGE SET "); if(!newObject.contains("left_image")&&!newObject.contains("right_image")){ return true; } if (newObject.contains("left_image")) { sql.append(QString("LEFT_IMAGE1 = '%1', ").arg(newObject.value("left_image").toString())); } if (newObject.contains("right_image")) { sql.append(QString("right_image1 = '%1', ").arg(newObject.value("right_image").toString())); } sql.remove(sql.length()-2,2); sql.append(QString(" WHERE PERSON_ID = %1").arg(id)); LOG(DEBUG) << sql.toStdString(); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行更新 bool success = query.exec(sql); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 return success; } bool IrisDataImgDao::dele(QString id) { return false; }