代码拉取完成,页面将自动刷新
#include "sqlutil.h"
#include <QDebug>
SqlUtil::SqlUtil(QObject *parent) : QObject(parent)
{
this->initSqlLite();
}
void SqlUtil::initSqlLite(){
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("talk.db");
QString s = db.connectionName();
psql = new QSqlQuery();
}
void SqlUtil::openDb(){
if(!db.open())
{
qDebug() << "sqllite打开失败";
}else{
qDebug() << "sqllite打开成功";
bool contactTsuccess = psql->exec("CREATE TABLE [Contact]([ContactId] INTEGER NOT NULL,[SourceHostUserName] NVARCHAR(40) NOT NULL,[SourceHostName] NVARCHAR(30) NOT NULL,[NickName] NVARCHAR(30),[MsgPayLoad] NVARCHAR(300),[SourceMac] NVARCHAR(80) NOT NULL,[TimeStamp1] NVARCHAR(70),[Version] NVARCHAR(10) NOT NULL,[PackageNo] NVARCHAR(10) NOT NULL,[MsgTypeCode] NVARCHAR(24) NOT NULL,[SourceIp] NVARCHAR(24),[AvatarPath] NVARCHAR(60),CONSTRAINT [PK_Customer] PRIMARY KEY ([ContactId]));");
bool TalkRecordTsuccess = psql->exec("CREATE TABLE [TalkRecord]([TalkRecordId] INTEGER NOT NULL,[ContactMac] NVARCHAR(80) NOT NULL,[SourceMac] NVARCHAR(80) NOT NULL,[MsgPayLoad] NVARCHAR(300),[TimeStamp1] NVARCHAR(70),[MsgTypeCode] NVARCHAR(24) NOT NULL,CONSTRAINT [PK_TalkRecord] PRIMARY KEY ([TalkRecordId]));");
emit initSuccess();
}
}
QSqlQuery* SqlUtil::selectDb(QString tableName)
{
QString sqlStr = "SELECT * from "+tableName;
if(psql->exec(sqlStr)){
return psql;
}
return nullptr;
}
void SqlUtil::insertDb(QString tableName,QList<QString> *bindKeyList,QList<QString> *bindValList){
QString paramsPlace="?";
for(int i=1;i<bindValList->size();i++){
paramsPlace+=",?";
}
QString sqlStr = "INSERT INTO "+tableName+"("+bindKeyList->join(",")+") VALUES ("+paramsPlace+")";
psql->prepare(sqlStr);
for(int i=0;i<bindValList->size();i++){
psql->addBindValue(bindValList->value(i));
}
bool success = psql->exec();
// qDebug() << success<<sqlStr;
}
void SqlUtil::addContact(ContactInfo *contactinfo)
{
QList<QString> bindKeyList={"SourceHostUserName","SourceHostName","NickName","MsgPayLoad","SourceMac","TimeStamp1","Version","PackageNo","MsgTypeCode","SourceIp","AvatarPath"};
QList<QString> bindValList={contactinfo->sourceHostUserName,contactinfo->sourceHostName,contactinfo->sourceHostUserName,contactinfo->msgPayLoad,contactinfo->sourceMac,contactinfo->timeStamp,contactinfo->version,contactinfo->packageNo,contactinfo->msgTypeCode,contactinfo->sourceIp,contactinfo->avatarPath};
insertDb("Contact",&bindKeyList,&bindValList);
}
QList<ContactInfo*>* SqlUtil::contactList()
{
QList<ContactInfo*> *contactList=new QList<ContactInfo*>;
QSqlQuery *query=selectDb("Contact");
while(query->next())
{
ContactInfo *contactInfo=new ContactInfo();
contactInfo->version=query->value("Version").toString();
contactInfo->packageNo=query->value("PackageNo").toString();
contactInfo->sourceMac=query->value("SourceMac").toString();
contactInfo->timeStamp=query->value("TimeStamp1").toString();
contactInfo->sourceHostUserName=query->value("SourceHostUserName").toString();
contactInfo->sourceHostName=query->value("SourceHostName").toString();
contactInfo->msgTypeCode=query->value("MsgTypeCode").toString();
contactInfo->msgPayLoad=query->value("MsgPayLoad").toString();
contactInfo->sourceIp=query->value("SourceIp").toString();
contactList->push_back(contactInfo);
}
return contactList;
}
bool SqlUtil::contactListByMacAddr(ContactInfo *contactinfo)
{
QString sqlStr = "SELECT * from Contact where SourceMac=?";
psql->prepare(sqlStr);
psql->addBindValue(contactinfo->sourceMac);
bool success = psql->exec();
if(psql->last()){
// qDebug() <<psql->at()+1;
return true;
}
psql->first();
return false;
}
QList<ContactInfo*>* SqlUtil::talkRecordListByContactMac(ContactInfo *contactinfo)
{
QString sqlStr = "SELECT * from TalkRecord WHERE ContactMac=?;";
psql->prepare(sqlStr);
psql->addBindValue(contactinfo->sourceMac);
psql->exec();
QList<ContactInfo*> *contactMsgList=new QList<ContactInfo*>;
while(psql->next())
{
ContactInfo *contactInfo=new ContactInfo();
contactInfo->version="";
contactInfo->packageNo="";
contactInfo->sourceMac=psql->value("SourceMac").toString();
contactInfo->timeStamp=psql->value("TimeStamp1").toString();
contactInfo->sourceHostUserName="";
contactInfo->sourceHostName="";
contactInfo->msgTypeCode=psql->value("MsgTypeCode").toString();
contactInfo->msgPayLoad=psql->value("MsgPayLoad").toString();
contactInfo->sourceIp="";
contactInfo->ContactMac=psql->value("ContactMac").toString();
contactMsgList->push_back(contactInfo);
}
return contactMsgList;
}
void SqlUtil::addMsg(ContactInfo *contactinfo)
{
QList<QString> bindKeyList={"ContactMac","SourceMac","MsgPayLoad","TimeStamp1","MsgTypeCode"};
QList<QString> bindValList={contactinfo->ContactMac,contactinfo->sourceMac,contactinfo->msgPayLoad,contactinfo->timeStamp,contactinfo->msgTypeCode};
insertDb("TalkRecord",&bindKeyList,&bindValList);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。