parking_lot_server/code.cpp

173 lines
3.5 KiB
C++

#include "code.h"
Code *Code::getInstance()
{
static Code codedb;
return &codedb;
}
Code::Code()
{
//先判断连接是否存在
if(QSqlDatabase::contains("codesql"))
{
db_ = QSqlDatabase::addDatabase("codesql");
}
else
{
//1.加载数据库驱动
db_ = QSqlDatabase::addDatabase("QSQLITE", "codesql");
qDebug () << db_.connectionName();//打印连接名称
//2.设置数据库名
db_.setDatabaseName("code.db");
qDebug () << db_.databaseName();
}
//3.打开数据库
if(db_.open())
{
qDebug() << "open success";
}
else
{
qDebug() << "open:" << db_.lastError().text();
return;
}
QString sql = "create table if not exists table_code(name varchar(30),parking_state varchar(5),number varchar(3));";
QSqlQuery query(db_);
if (query.exec(sql))
{
qDebug() << "codedb success.";
}
db_.close();
}
bool Code::insertUsr(QString name, QString code, QString number)
{
QString sql = QString("insert into table_code values('%1', '%2', '%3')")
.arg(name)
.arg(code)
.arg(number);
// 1.打开数据
if (!db_.open())
{
qDebug() << "open:" << db_.lastError().text();
return false;
}
// 2.执行sql
QSqlQuery query(db_);
if (!query.exec(sql))
{
qDebug() << "insert:" << query.lastError().text();
return false;
}
//关闭数据库
db_.close();
return true;
}
//根据name查找用户
bool Code::findUsr(QString name,QString code)
{
QString sql = QString("select from table_code where name = :name;");
//打开数据库
if(!db_.open())
{
qDebug() << "open fail" << db_.lastError().text();
exit(-1);
}
//执行插入操作
QSqlQuery query(db_);
query.prepare(sql);
query.bindValue(":name",QVariant(name));
query.exec();
//查询成功
if(query.next())
{
if(name == query.value(0).toString()) //用户存在
{
if(code == query.value(1).toString())
{
QString number = query.value(1).toString();
Delete(name);
return true;
}
}
}
db_.close();
return false;
}
bool Code::Delete(QString name)
{
QString sql = QString("delete from table_code where name = :name;");
//打开数据库
if(!db_.open())
{
qDebug() << "open fail" << db_.lastError().text();
exit(-1);
}
//执行删除操作
QSqlQuery query(db_);
query.prepare(sql);
query.bindValue(":name",QVariant(name));
if (!query.exec())
{
qDebug() << "delete" << query.lastError().text();
return false;
}
//关闭数据库
db_.close();
return true;
}
//匹配name和pwd
bool Code::match(QString name, QString pwd)
{
QString sql = QString("select name, pwd from table_usr where name = :name;");
//打开数据库
if(!db_.open())
{
qDebug() << "open fail" << db_.lastError().text();
exit(-1);
}
QSqlQuery query(db_);
query.prepare(sql);
query.bindValue(":name",QVariant(name));
if(query.exec())
{
//匹配密码
if(query.next())
{
qDebug() << query.value(1).toString();
if(pwd == query.value(1).toString())
{
return true;
}
}
}
//关闭数据库
db_.close();
return false;
}